Java 防止JTree在拖放后展开

Java 防止JTree在拖放后展开,java,swing,drag-and-drop,jtree,expand,Java,Swing,Drag And Drop,Jtree,Expand,拖放节点后,节点的新父节点将展开。我想禁用这个 我扩展了类TransferHandler,并重写了方法importData。 在这个方法中,我执行实际的移动。移动节点后,我检查父节点是否已展开,并得到false作为答案。 那么,在哪里或如何取消扩展?也许您可以使用并添加如下侦听器: public class DisableExpansionListener implements TreeWillExpandListener { @Override public void tree

拖放节点后,节点的新父节点将展开。我想禁用这个

我扩展了类
TransferHandler
,并重写了方法
importData
。 在这个方法中,我执行实际的移动。移动节点后,我检查父节点
是否已展开
,并得到
false
作为答案。
那么,在哪里或如何取消扩展?

也许您可以使用并添加如下侦听器:

public class DisableExpansionListener implements TreeWillExpandListener {
    @Override
    public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException {
        throw new ExpandVetoException(event, "Disallow all expansions!");
    }

    @Override
    public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException
        // allow collapsing!
    }
}
也许您可以使用并添加如下侦听器:

public class DisableExpansionListener implements TreeWillExpandListener {
    @Override
    public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException {
        throw new ExpandVetoException(event, "Disallow all expansions!");
    }

    @Override
    public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException
        // allow collapsing!
    }
}

据我所知,这将禁用扩展树的可能性。我只想禁用拖放后的自动扩展。谢谢。我知道,但是您已经实现了TransferHandler,所以应该可以在开始拖动时添加侦听器,并在拖动完成后再次删除它。好的。我知道你在那里做了什么;)我希望有更好的解决方案,但据我所知,它将禁用扩展树的可能性。我只想禁用拖放后的自动扩展。谢谢。我知道,但是您已经实现了TransferHandler,所以应该可以在开始拖动时添加侦听器,并在拖动完成后再次删除它。好的。我知道你在那里做了什么;)我希望有一个更好的解决方案。如果想得到更好的帮助,请尽快发布一个or。如果想得到更好的帮助,请发布一个or。