gpt4 book ai didi

java - 判断JTree中的节点是否被删除

转载 作者:行者123 更新时间:2023-12-01 22:18:08 24 4
gpt4 key购买 nike

现在,我的 JTree 上有一个 TreeSelectionListener。这很好用。但是,我需要检测节点已被删除的情况。我不知道如何使用 TreeSelectionEvent 来执行此操作。

我在 JavaDoc 中没有看到任何关于它的内容。我一直在寻找类似于 TableModelEvent 的东西,它有一个 getType() 方法,可以让您知道某些内容是否被更新、删除或插入到表中。知道如何检测到这一点吗?

我无法使用 TreeModelListener,因为当我调用时:

((DefaultTreeModel)getModel()).removeNodeFromParent(node);

在我的树上,它会触发 valueChanged(TreeSelectionEvent) 被触发。这就是我想要逃避的。

类似于:

public void valueChanged(TreeSelectionEvent treeSelectionEvent){
if(treeSelectionEvent.someMethod()){ <----need this
return;
}
}

最佳答案

I need to detect the case that a node has been deleted

要检测节点是否已被删除,您可以使用 TreeModelListener 。简单的例子:

DefaultTreeModel model = new DefaultTreeModel(new DefaultMutableTreeNode("Root"));
JTree tree = new JTree(model);
model.addTreeModelListener(new TreeModelListener(){
public void treeNodesRemoved(TreeModelEvent e){
//do something
}
//further listener implementation here
});

编辑:要防止选择监听器在删除节点时触发,您可以

  1. 删除选择监听器
  2. 删除节点
  3. 重新添加选择监听器

关于java - 判断JTree中的节点是否被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30581306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com