Дайте очень элементарный класс (импорт разрешен в JavaFX пакеты):JavaFX двунаправленная привязка не работает с управления становится не редактируется
public class T07 extends Application implements Initializable{
с некоторыми полями, представляющих элементы управления, определенные в файле .fxml:
@FXML TextField text01;
и модель данных, которая использует обертки объектов в наиболее простой форме:
public static class DataModel {
StringProperty first = new SimpleStringProperty();
//getter
public String getFirst() {return first.get();}
//setter
public void setFirst(String first) {this.first.set(first);}
//new "property" accessor
public StringProperty firstProperty() {return first;}
}
Я стараюсь, чтобы связать пользовательский интерфейс элемент управления с моделью данных внутри Initialize:
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
Bindings.bindBidirectional(text01.textProperty(), dm.firstProperty());
}
, но делает это так, я получаю нередактируемый контроль. комментируя строку Bindings.bindBidirectional, элемент управления становится обычно редактируемым и его ценность доступна через поле text01.
Каков недостающий ингредиент в этом связующем рецепте?
Если посмотреть на код в вопросе, я не вижу, что делает этот код, который функционально отличается. Я просто вижу код, который отслеживает, что происходит. Что это исправляет? – Joel
@Joel. Это означает, что «вот рабочий пример без поведения« не редактируемого управления », поэтому вы должны снова посмотреть свой код». –