我无法从 Textfield 读取数据
I am unable to read the data from Textfield
我一直在尝试使用 JavaFX 制作一个简单的计算器,但我对此还很陌生。我有两个 TextField
,其余按钮是 +
、-
、*
、/
等运算符。问题是每当我执行计算并按等于时,结果都是零。计算器不对任何运算符执行计算。请帮助我解决这个问题,因为我无法理解为什么会这样。下面是控制器文件的代码。
package application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Button;
public class MainController {
@FXML
private Label result;
@FXML
private TextField num1, num2 ;
private String operator = "";
private int number1, number2;
//private boolean start = true;
private Model model = new Model();
@FXML
public void processNumbers(ActionEvent event) {
number1 = Integer.parseInt(num1.getText());
number2 = Integer.parseInt(num2.getText());
}
@FXML
public void processOperators(ActionEvent event) {
String value = ((Button) event.getSource()).getText();
if (!value.equals("?")) {
if (!operator.isEmpty())
return;
operator = value;
} else {
if (operator.isEmpty())
return;
int output = model.calculate(number1, number2, operator);
result.setText(String.valueOf(output));
operator = "";
//start = true;
}
}
}
我复制了 运行 你的代码。有用。问题是流程不直观(在我看来)。
首先,您需要在 TextField
中输入值,即 num1
和 num2
。输入值后,键盘焦点位于其中一个 TextField
上,您需要按 ,因为按 会调用方法 processNumbers
,因为您设置了 onAction
属性 for num1
and num2
in file Main.fxml
输入数字并按下 后,您按下操作员按钮之一,即 /
或 *
或 +
或 -
。
按下其中一个运算符按钮后,按下 ?
按钮并显示正确的结果。
顺便说一下,我认为 Clear
按钮不能正常工作。您应该编写一个单独的方法来执行 clear 操作,并将 FXML 文件中该按钮的 onAction
的值更改为新方法。
我一直在尝试使用 JavaFX 制作一个简单的计算器,但我对此还很陌生。我有两个 TextField
,其余按钮是 +
、-
、*
、/
等运算符。问题是每当我执行计算并按等于时,结果都是零。计算器不对任何运算符执行计算。请帮助我解决这个问题,因为我无法理解为什么会这样。下面是控制器文件的代码。
package application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Button;
public class MainController {
@FXML
private Label result;
@FXML
private TextField num1, num2 ;
private String operator = "";
private int number1, number2;
//private boolean start = true;
private Model model = new Model();
@FXML
public void processNumbers(ActionEvent event) {
number1 = Integer.parseInt(num1.getText());
number2 = Integer.parseInt(num2.getText());
}
@FXML
public void processOperators(ActionEvent event) {
String value = ((Button) event.getSource()).getText();
if (!value.equals("?")) {
if (!operator.isEmpty())
return;
operator = value;
} else {
if (operator.isEmpty())
return;
int output = model.calculate(number1, number2, operator);
result.setText(String.valueOf(output));
operator = "";
//start = true;
}
}
}
我复制了 运行 你的代码。有用。问题是流程不直观(在我看来)。
首先,您需要在 TextField
中输入值,即 num1
和 num2
。输入值后,键盘焦点位于其中一个 TextField
上,您需要按 processNumbers
,因为您设置了 onAction
属性 for num1
and num2
in file Main.fxml
输入数字并按下 /
或 *
或 +
或 -
。
按下其中一个运算符按钮后,按下 ?
按钮并显示正确的结果。
顺便说一下,我认为 Clear
按钮不能正常工作。您应该编写一个单独的方法来执行 clear 操作,并将 FXML 文件中该按钮的 onAction
的值更改为新方法。