现在,我的TreeSelectionListener
上有一个JTree
。这很好用。但是,我需要检测节点已被删除的情况。我不知道如何使用TreeSelectionEvent。
我没有在JavaDoc中看到任何关于它的内容。我正在寻找类似TableModelEvent
的东西,它有一个getType()
方法,可以让你知道某些东西是否被更新,删除或插入到表中。知道如何检测这个吗?
我不能使用TreeModelListener,因为当我调用时:
((DefaultTreeModel)getModel()).removeNodeFromParent(node);
在我的树上,它会触发valueChanged(TreeSelectionEvent)
被触发。这就是我想逃避的。
类似的东西:
public void valueChanged(TreeSelectionEvent treeSelectionEvent){
if(treeSelectionEvent.someMethod()){ <----need this
return;
}
}
答案 0 :(得分:3)
我需要检测节点已被删除的情况
要检测节点是否已被删除,您可以使用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
});
编辑:为了防止在删除节点时触发Selection侦听器,您可以