我正在开发简单的计算器,用户在 TextField
中输入两个数字,结果显示在结果 TextField
中。我使用 Double.parseDouble
从输入 TextFields 中获取文本并对其应用操作。但我无法将它传递给第三个输入字段。我试图将 double
结果转换回 String 但它没有用。我怎样才能简单地将数字传递给 TextField?
double num1 = Double.parseDouble(numberInput1.getText());
double num2 = Double.parseDouble(numberInput2.getText());
double resultV = (num1 + num2);
resultInput.setText(resultV);
最后一行无效,因为格式不同。
最佳答案
setText
需要一个 String
作为参数。您需要将结果转换为 String
,例如通过使用 Double.toString
。
但是在这种情况下,我建议添加 TextFormatter
到 TextField
,它允许您使用 TextField
分配/输入类型不同于 String
的值:
TextField summand1 = new TextField();
TextField summand2 = new TextField();
TextField result = new TextField();
StringConverter<Double> converter = new DoubleStringConverter();
TextFormatter<Double> tf1 = new TextFormatter<>(converter, 0d);
TextFormatter<Double> tf2 = new TextFormatter<>(converter, 0d);
TextFormatter<Double> tfRes = new TextFormatter<>(converter, 0d);
summand1.setTextFormatter(tf1);
summand2.setTextFormatter(tf2);
result.setTextFormatter(tfRes);
tfRes.valueProperty().bind(
Bindings.createObjectBinding(() -> tf1.getValue() + tf2.getValue(),
tf1.valueProperty(),
tf2.valueProperty()));
result.setEditable(false);
这允许您使用 TextFormatter
分配值,例如
double someValue = 3d;
tf1.setValue(someValue);
关于java - 如何将数字传递给 TextField JavaFX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35421392/