2016-05-25 2 views
2

Я пытаюсь связать ObjectProperty<LocalDate> на DTO с TextField, и у меня возникли проблемы с его работой.Как привязать LocalDate к TextField двунаправленно в JavaFX

Это, как я его настроить:

dateOfBirthTextField.setTextFormatter(new TextFormatter<>(new LocalDateEnhancedStringConverter())); 

person.birthdayProperty().bindBidirectional(dateOfBirthTextField.textProperty(), new LocalDateEnhancedStringConverter()); 

Но это дает мне следующую ошибку компиляции:

The method bindBidirectional(Property) in the type ObjectProperty is not applicable for the arguments (StringProperty, LocalDateEnhancedStringConverter)

Не совсем уверен, что попробовать дальше?

ответ

2

Согласно JavaDoc:

public <T> void bindBidirectional(Property<T> other, StringConverter<T> converter)

Create a bidirectional binding between this StringProperty and another arbitrary property. Parameters:

other - the other Property

converter - the StringConverter used to convert between this StringProperty and the other Property

(полужирный мой)

Таким образом, вы должны сделать привязку в обратном порядке, чтобы связать StringProperty, который приходит из текстового поля в «другой» имущество, день рождения:

dateOfBirthTextField.textProperty() 
    .bindBidirectional(
     person.birthdayProperty(), 
     new LocalDateEnhancedStringConverter()); 
0

Вместо этого я рекомендую использовать DatePicker. Затем вы можете связать value property.

+0

К сожалению, мои пользователи не хотят выбирать дату, поэтому я застрял в этом прецеденте. –

Смежные вопросы