Я хочу понять, как работает ObjectProperty, но все равно не повезло. У меня есть следующий POJO:JavaFX: адаптер, ObjectProperty и двунаправленная привязка
public class Article{
private LocalDateTime dateTime;
private final PropertyChangeSupport propertyChangeSupport;
public Article(String title) {
this.propertyChangeSupport = new PropertyChangeSupport(this);
}
public LocalDateTime getDateTime() {
return dateTime;
}
public void setDateTime(LocalDateTime dateTime) {
LocalDateTime pv = this.dateTime;
this.dateTime = dateTime;
propertyChangeSupport.firePropertyChange("dateTime", pv, this.dateTime);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
}
Теперь я создаю OBJECTPROPERTY для поля DATETIME:
ObjectProperty<LocalDateTime> dateTimeProperty=new JavaBeanObjectPropertyBuilder().bean(article).name("dateTime").build();
А теперь я хочу, чтобы связать эту DateTimeProperty к textField.textProperty(). И я понятия не имею, как это сделать: как будут форматироваться данные для отображения dateTime в textField? Как экземпляр LocalDateTime будет создан при вводе нового времени в textField? У нас есть двунаправленная привязка. Пожалуйста, объясни.
Не будет ли это умирать, когда вы попытаетесь отредактировать текстовое поле? Он попытается проанализировать дату/время при каждом изменении текста, поэтому во время редактирования у вас будет тонна недопустимых значений. Вам нужно только разобрать значение для фиксации. –
Хммм .. Не уверен - я использую специализированный конвертер, который обрабатывает несколько разных форматов, поэтому для меня это не проблема. Однако я считаю, что это стандартный способ обработки этих элементов. –