Предположим, что я добавлю ChangeListener в ItemProperty TableView. Когда будет вызван метод изменения ChangeListener?Странное поведение TableView.itemsProperty?
Я попытался добавить в пустой список, где указаны элементы TableView. Результат. Измененный метод ChangeListener не вызывался.
Однако, я также попытался добавить в пустой список, а затем указать пункты TableView на нем. Результат - вызванный метод ChangeListener был вызван.
tableView.itemsProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue ov, Object t, Object t1) {
System.out.println("Changed!");
}
});
final ObservableList data = FXCollections.observableArrayList(new ArrayList());
data.clear();
data.add(new Object());
tableView.setItems(data);
data.clear();
data.add(new Object());
tableView.setItems(data);
Я посмотрел его на http://docs.oracle.com/javafx/2/api/javafx/scene/control/TableView.html#itemsProperty() но это говорит только «базовая модель данных для TableView. Обратите внимание, что он имеет общий тип, который должен соответствовать типу самого TableView.»
Я прошу об этом, потому что я могу упустить другие важные обстоятельства.
Thanks Magcus, произошла ошибка. Это не tableView.add (новый Object()), это tableView.getItems(). Add (new Object()); Я редактировал свой вопрос. В любом случае, вы можете сказать, почему tableView.getItems(). Add (new Object()); не уведомил ChangeListener, связанный с itemsProperty tableView? –
Можете ли вы добавить остальную часть кода? Специально набор изменений. Потому что в моих проектах он отлично работает ... – Magcus
Хорошо, я попытаюсь отредактировать свой вопрос через некоторое время. –