这是 JavaFX。
我有一个名为 tableView 的 TableView,其项目是一个名为 dataList 的非空 ObservableList。 TableView通过调用tableView.setItems(dataList)包含了dataList; 然后,我向 tableView.getItems() 添加了一个名为 listChangeListener 的 ListChangeListener。调用是 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);但又出现了另一个问题,即监听器也没有被调用。
最佳答案
我刚刚尝试了以下代码:
tableView.getItems().addListener(new ListChangeListener<String>() {
@Override
public void onChanged(
ListChangeListener.Change<? extends String> arg0) {
System.out.println("Changed!!");
}
});
并且更改监听器被调用... 您可以发布您的代码以便我们看一下吗?
关于java - 使用 TableView.getItems() 观察 ObservableList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19019819/