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。