我正在尝试将DTO上的ObjectProperty<LocalDate>
绑定到TextField
,但我无法将其发挥作用。
这就是我设置它的方式:
dateOfBirthTextField.setTextFormatter(new TextFormatter<>(new LocalDateEnhancedStringConverter()));
person.birthdayProperty().bindBidirectional(dateOfBirthTextField.textProperty(), new LocalDateEnhancedStringConverter());
但是这给了我以下编译错误:
ObjectProperty类型中的方法bindBidirectional(Property)不适用于参数(StringProperty,LocalDateEnhancedStringConverter)
不太确定下一步该尝试什么?
答案 0 :(得分:2)
根据JavaDoc:
public <T> void bindBidirectional(Property<T> other, StringConverter<T> converter)
在此
StringProperty
与另一个任意属性之间创建双向绑定。 参数:
other
- 另一个属性
converter
- 用于在 StringProperty 和其他属性之间进行转换的StringConverter
(大胆是我的)
所以你应该以相反的顺序进行绑定,将来自文本字段的StringProperty
绑定到&#34;其他&#34;财产,生日财产:
dateOfBirthTextField.textProperty()
.bindBidirectional(
person.birthdayProperty(),
new LocalDateEnhancedStringConverter());
答案 1 :(得分:0)
我建议改用DatePicker。然后,您可以绑定value property。