我需要计算几个文本输入字段的总和。相当简单,但我已经在正确的转换和类型转换方面苦苦挣扎了几个小时。
我有许多文本字段,需要将它们的文本属性绑定(bind)到 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);
我看到了使用转换器作为双向绑定(bind)参数的解决方案,但它给了我一个错误,说它是一个参数太多。
我还尝试了 value.bindbidirective(converter.fromString(textField.textProperty().get()));
,它也不起作用。这次说 Number 无法转换为 Property Number。
这是一个家庭作业问题,但在过去的 3 小时内,学习所提供的 Material 和文档都没有让我走得更远,因此发表了这篇文章。 我们需要使用 textFields、双向绑定(bind)、simpleIntegerProperties 和 NumberStringConverter。
最佳答案
所以显然这个 value.bindBidirective(textField.textProperty(), converter);
不起作用。然而,这确实是:textField.textProperty().bindBi Direction(value, converter);
关于java - TextField 中的 SimpleIntegerProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777797/