【问题标题】:How can i return deleted treeitems in javafx treeview?如何在 javafx 树视图中返回已删除的树项?
【发布时间】:2019-04-24 03:32:28
【问题描述】:

如何在 Javafx 树视图中返回已删除的树项?

当我做出这样的树时。

root-
    |-item1
    |-item2
    |-folder1-
             |-item3
             |-item4
             |-item5
             |-folder2-....
             |-folder3-....

如果我删除文件夹 1,我想获取一些已删除项目和文件夹的列表,这意味着如果我删除文件夹 1,我想获取位于文件夹 2 中的项目 3、项目 4、项目 5、文件夹 2、文件夹 3 和更多项目的列表,并且文件夹3。

我使用 remove() 函数像这样删除树项。

folder1.getParent().getChildren.remove(folder1);

在这种情况下,获取已删除节点列表的最佳方法是什么?

【问题讨论】:

    标签: javafx treeview


    【解决方案1】:

    EventHandler 添加到您的根TreeItem 以处理TreeModificationEvents。具体来说,您应该侦听具有TreeItem#childrenModificationEvent() 事件类型的事件。

    当 TreeItem 收到对其子列表的直接修改时使用的 EventType。

    TreeItem<T> root = ...;
    root.addEventHandler(TreeItem.<T>childrenModificationEvent(), event -> {
        if (event.wasRemoved()) {
            List<? extends TreeItem<T>> removed = event.getRemovedChildren();
            // Handle removed children. Traverse descendants as needed.
        }
    });
    

    T 是您的值类型。

    【讨论】:

    • 这实际上是我想要的。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多