Мне нужно вычислить сумму нескольких полей ввода текста.Скорее прямо, но я боролся с правильным преобразованием и приведением в течение нескольких часов.
У меня есть несколько текстовых полей, и мне нужно связать их свойства текста с SimpleIntegerProperties, или, по крайней мере, я думаю, чтобынаконец вычислите их сумму.Вот что я застрял с последним:
IntegerProperty value = new SimpleIntegerProperty();
NumberStringConverter converter = new NumberStringConverter();
TextField textField = new TextField();
textField.textProperty().addListener(
new ChangeListener<String>() {
@Override
public void changed(
ObservableValue<? extends String> observable,
String oldValue, String newValue) {
if (!newValue.matches("[1-9]\\d{0,3}")) {
textField.setText(oldValue);
}}});
value.bindBidirectional(textField.textProperty(), converter);
Я видел решения, использующие конвертер в качестве аргумента для двунаправленного связывания, но он дает мне ошибку, говоря, что это один аргумент, слишком много.Я также попробовал value.bindBidirectional(converter.fromString(textField.textProperty().get()));
, который тоже не работает.На этот раз, сказав, что номер не может быть преобразован в номер объекта.
Это домашний вопрос, но ни изучение предоставленных материалов, ни документации не дало мне дальнейших результатов за последние 3 часа, отсюда и пост.Нам необходимо использовать textFields, двунаправленную привязку, simpleIntegerProperties и NumberStringConverter.