这是JavaFX。
我有一个名为tableView的TableView,其项目是一个名为dataList的非空ObservableList。 TableView通过调用tableView.setItems(dataList)包含dataList; 然后,我将一个ListChangeListener添加到名为listChangeListener的tableView.getItems()中。调用是tableView.getItems()。addListener(listChangeListener);
tableView.setItems(dataList);
tableView.getItems().addListener(listChangeListener);
现在,每当更改dataList时,我都会注意到listChangeListener没有被调用。但是,tableView的内容会更改为dataList的内容。为什么会这样?如何仅使用tableView或tableView本身中的变量来检测更改?
注意:
我不想调用dataList.addListener(listChangeListener),因为我希望能够调用tableView.setItems(anotherDataList);在某些时候。
我也尝试过使用itemsProperty()。addListener(aDifferentListener);但是出现了另一个问题,其中听众也没有被调用。
答案 0 :(得分:1)
我刚刚尝试了以下代码:
tableView.getItems().addListener(new ListChangeListener<String>() {
@Override
public void onChanged(
ListChangeListener.Change<? extends String> arg0) {
System.out.println("Changed!!");
}
});
变革听众被称为...... 您可以发布您的代码,以便我们可以查看它吗?