java - 使用 TableView.getItems() 观察 ObservableList?

标签 java javafx-2 javafx

这是 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/

相关文章:

javafx-2 - 清理 JavaFX 中的 gridPane 并维护 Grid 线

java - 如何在 JavaFX 中单击的选项卡上隐藏 TabPane 内容

java - 是否建议在字段中缓存 Collections.unmodifiableList() 结果?

javafx - 标签不更新任务进度

java - 为什么Java中的许多Collection类都扩展抽象类并实现接口(interface)?

tabs - Javafx 2.0 - 在 EventHandler 中获取 ContextMenu 父节点

java - 如何使用 JavaFX 将 TreeView 插入到 Accordion 中

java - 我们可以在javafx中的多个类之间创建回调吗

java - 在不同线程使用时使 Web 方法同步是一个好习惯吗?

java - Eclipse 插件 : Enablement of an Action based on the current selection