如何在Javafx树视图中返回已删除的树项?
当我做这样的树时。
root-
|-item1
|-item2
|-folder1-
|-item3
|-item4
|-item5
|-folder2-....
|-folder3-....
如果我删除folder1,我想获取一些已删除项目和设备列表,这意味着如果我删除folder1,我想获取item3,item4,item5,folder2,folder3以及位于folder2和文件夹3。
我使用remove()函数删除了这样的treeitem。
folder1.getParent().getChildren.remove(folder1);
在这种情况下,获取已删除节点列表的最佳方法是什么?
答案 0 :(得分:0)
在您的根EventHandler
中添加一个TreeItem
来处理TreeModificationEvent
。具体来说,您应该监听事件类型为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
是您的值类型。