I am working on simple calculator, where users input two numbers in TextField
and the result is displayed in result TextField
. I used Double.pars
setText
expects a String
as parameter. You need to convert the result to a String
, e.g. by using Double.toString
.
However in this case I recommend adding a TextFormatter to the TextField
which allows you to assign/input values of a type different to String
using a TextField
:
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);
This allows you to assign the value using the TextFormatter
, e.g.
double someValue = 3d;
tf1.setValue(someValue);
There is no method TextField.setText (double)
try
resultInput.setText("" + resultV);
but I guess what you really want is for the result to be nicely formatted to maybe two decimal places?
try using
resultInput.setText(String.format ("%6.2f", resultV));
you can also use
resultInput.setText(Double.toString(resultV));