Как мне предписать моей программе ждать ввода пользователя в JavaFX? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь кодировать калькулятор в JavaFX, который работает аналогично калькулятору, имеющемуся в iOS.Однако я не могу найти способ установить для экранного текста значение 0, чтобы пользователь мог свободно вводить другое значение, когда оператор «плюс» нажимается, без перехода программы на следующую строку и использования «0» в качествезначение, чтобы добавить с.Как лучше всего подождать, пока пользователь введет значение, а затем добавить его?

public void onPlusClick() {
    if (!isPlusToggled) {
        isPlusToggled = true;
        plusButton.setStyle("-fx-background-color: #85878c; -fx-border-color: #75767a;");
        input = Double.parseDouble(display.getText());
        display.setText("0");
        if (isFirstPlus) {
            result += input;
            isFirstPlus = false;
        }
    } else if (display.getText().equals("0")) {
        isPlusToggled = false;
        plusButton.setStyle("-fx-background-color: #2c2d2d; -fx-border-color: #2c2d2d");
    } else {
        display.setText("0");
        //this is where the program should wait for the user input.
        input = Double.parseDouble(display.getText());
        result += input;
        display.setText(String.valueOf(result));
    }
}

1 Ответ

0 голосов
/ 28 декабря 2018

Попробовав несколько разных решений, я нашел одно в моей проблеме, добавив оператор else if, который проверяет, совпадает ли значение на экране со значением результата.В этом случае на экране будет установлено значение 0, чтобы пользователь мог далее вводить числа для расчета.Спасибо всем за помощь!

    public void onPlusClick() {
    if (!isPlusToggled) {
        isPlusToggled = true;
        plusButton.setStyle("-fx-background-color: #85878c; -fx-border-color: #75767a;");
        input = Double.parseDouble(display.getText());
        display.setText("0");
        if (isFirstPlus) {
            result += input;
            isFirstPlus = false;
        }
    } else if (display.getText().equals("0")) {
        isPlusToggled = false;
        plusButton.setStyle("-fx-background-color: #2c2d2d; -fx-border-color: #2c2d2d");
      //this is the new else if statement.
    } else if (display.getText().equals(String.valueOf(result))) {
        display.setText("0");
    } else {
        input = Double.parseDouble(display.getText());
        result += input;
        display.setText(String.valueOf(result));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...