我正在尝试使用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));
}
}
答案 0 :(得分:0)
尝试了几种不同的解决方案后,我通过添加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));
}
}