Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确定是否在JTree中删除了节点_Java_Swing_Jtree - Fatal编程技术网

Java 确定是否在JTree中删除了节点

Java 确定是否在JTree中删除了节点,java,swing,jtree,Java,Swing,Jtree,现在,我的JTree上有一个TreeSelectionListener。这个很好用。但是,我需要检测节点已被删除的情况。我不知道如何使用TreeSelection事件来实现这一点 我在JavaDoc中没有看到关于它的任何东西。我在寻找类似于tablemodeleevent的东西,它有一个getType()方法,可以让您知道是否有东西被更新、删除或插入到表中。你知道怎么能检测到吗 我不能使用TreeModelListener,因为当我调用时: ((DefaultTreeModel)getModel

现在,我的
JTree
上有一个
TreeSelectionListener
。这个很好用。但是,我需要检测节点已被删除的情况。我不知道如何使用TreeSelection事件来实现这一点

我在JavaDoc中没有看到关于它的任何东西。我在寻找类似于
tablemodeleevent
的东西,它有一个
getType()
方法,可以让您知道是否有东西被更新、删除或插入到表中。你知道怎么能检测到吗

我不能使用TreeModelListener,因为当我调用时:

((DefaultTreeModel)getModel()).removeNodeFromParent(node);
在我的树上,它触发要激发的
valueChanged(TreeSelectionEvent)
。这就是我想要逃避的

比如:

public void valueChanged(TreeSelectionEvent treeSelectionEvent){
    if(treeSelectionEvent.someMethod()){ <----need this
        return;
    }
}
public void值已更改(TreeSelectionEvent TreeSelectionEvent){
如果(treeSelectionEvent.someMethod()){
我需要检测节点已被删除的情况

要检测节点已被删除,您可以使用一个简单的示例:

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
});
编辑:要防止选择侦听器在删除节点时触发,可以

  • 删除选择侦听器
  • 删除节点
  • 添加回选择侦听器
  • 我需要检测节点已被删除的情况

    要检测节点已被删除,您可以使用一个简单的示例:

    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
    });
    
    编辑:要防止选择侦听器在删除节点时触发,可以

  • 删除选择侦听器
  • 删除节点
  • 添加回选择侦听器
  • 我需要检测节点已被删除的情况

    要检测节点已被删除,您可以使用一个简单的示例:

    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
    });
    
    编辑:要防止选择侦听器在删除节点时触发,可以

  • 删除选择侦听器
  • 删除节点
  • 添加回选择侦听器
  • 我需要检测节点已被删除的情况

    要检测节点已被删除,您可以使用一个简单的示例:

    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
    });
    
    编辑:要防止选择侦听器在删除节点时触发,可以

  • 删除选择侦听器
  • 删除节点
  • 添加回选择侦听器

  • 谢谢,请查看我的编辑。可能我缺少一些内容。但是当我从模型中删除节点时,会调用我的TreeSelection侦听器。这就是我试图检测和停止的内容。删除发生在模型中,选择发生在视图中。如果您希望在删除节点时阻止侦听器触发,则可以a)删除选举监听器b)删除节点c)添加回选择监听器好主意!我会尝试一下,请查看我的编辑。可能我缺少什么。但是当我从模型中删除节点时,会调用我的TreeSelection监听器。这就是我试图检测和停止的内容。删除发生在模型中,选择发生在e视图。如果您希望在删除节点时阻止侦听器触发,那么您可以a)删除选择侦听器b)删除节点c)重新添加选择侦听器好主意!我将尝试一下,请查看我的编辑。可能我缺少一些内容。但是,当我从我的列表中删除节点时,会调用我的TreeSelection侦听器模型。这就是我试图检测和停止的内容。删除发生在模型中,选择发生在视图中。如果您希望在删除节点时阻止侦听器触发,那么您可以a)删除选择侦听器b)删除节点c)重新添加选择侦听器好主意!我会尝试一下,请查看我的编辑。可能我缺少re。但是当我从模型中删除节点时,会调用我的TreeSelection侦听器。这是我试图检测和停止的。删除发生在模型中,视图中的选择。如果您希望在删除节点时阻止侦听器触发,则可以a)删除选择侦听器b)删除节点c) 添加回选择列表好主意!我将尝试一下