如何将数字传递给TextField JavaFX?

我正在研究简单的计算器,用户在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); 

最后一行不起作用,因为格式不同。

没有方法TextField.setText (double)

尝试

 resultInput.setText("" + resultV); 

但我想你真正想要的是将结果很好地格式化为两位小数?

尝试使用

 resultInput.setText(String.format ("%6.2f", resultV)); 

setText期望String作为参数。 您需要将结果转换为String ,例如使用Double.toString

但是在这种情况下,我建议在TextField添加一个TextFormatter ,它允许您使用TextField分配/输入与String不同的类型的值:

 TextField summand1 = new TextField(); TextField summand2 = new TextField(); TextField result = new TextField(); StringConverter converter = new DoubleStringConverter(); TextFormatter tf1 = new TextFormatter<>(converter, 0d); TextFormatter tf2 = new TextFormatter<>(converter, 0d); TextFormatter 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); 

你也可以使用resultInput.setText(Double.toString(resultV));