У меня есть очень простая модель, состоящая из 3 StringProperty
, давайте назовем их property1
, property2
и property3
. В моей модели я определил обычные методы get/set/property
. Теперь я использую TableView
для отображения некоторых из этих свойств. Модель Колонка определяется как следоватьJavaFX: Как сделать ячейки таблицы, чтобы быть в контингент значения другой ячейки таблицы
TableColumn<MyModel, String> tableColumn1 = new TableColumn<MyModel, String>("display 1");
TableColumn<MyModel, String> tableColumn2 = new TableColumn<MyModel, String>("display 2");
теперь TableColumn следовать образцу, используя значение ячейки завода, связанный с одной из собственности моей модели.
tableColumn1.setCellValueFactory((t)-> {
MyModel myModelValue = ((MyModel)t.getValue());
return myModelValue.getProperty3().equals("something") ? property1():property2();
});
tableColumn2.setCellValueFactory((t)-> property3());
Проблема в следующем. Если property3
будет изменен где-то во время выполнения, он будет правильно инициировать изменение в столбце2 моей таблицы и обновлении пользовательского интерфейса ячейки. Но он ничего не сделает для столбца1, поскольку ни property1
, и property2
не изменились. Как я могу каким-то образом заставить column1 изменить или слушать условную к изменению property3
благодаря
Ну, вы должны признать, что Java стала очень аккуратно! Спасибо, прекрасный ответ, я забыл эту функцию привязки «когда» – BlackLabrador