我正在使用简单计算器,用户在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);
最后一行不起作用,因为格式不同。
答案 0 :(得分:2)
setText
需要String
作为参数。您需要将结果转换为String
,例如使用Double.toString
。
但是,在这种情况下,我建议在TextField
添加TextFormatter
,这样您就可以使用String
分配/输入与TextField
不同的类型的值:< / p>
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);
答案 1 :(得分:1)
没有方法TextField.setText (double)
试
resultInput.setText("" + resultV);
但我想你真正想要的是将结果很好地格式化为两位小数?
尝试使用
resultInput.setText(String.format ("%6.2f", resultV));
答案 2 :(得分:1)
你也可以使用
b