2017-09-03 97 views
0

拖放节点后,节点的新父节点展开。我想禁用这个。拖放后阻止JTree扩展

我扩展了类TransferHandler并覆盖了方法importData。 在这种方法中,我做了实际的动作。在节点移动之后,我检查父节点isExpanded和我是否得到false作为答案。
那么我在哪里或如何取消扩展?

+1

为了更好地帮助更快,发布[MCVE]或[短的,独立的,正确的示例](HTTP://www.sscce .org等/)。 –

回答

0

也许你可以使用addTreeWillExpandListener并添加这样的监听器:

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! 
    } 
} 
+0

据我了解,它将禁用扩大树的可能性。我只想在拖放后禁用自动扩展。谢谢。 –

+0

我知道,但您已经实现了TransferHandler,所以应该可以在拖动开始时添加侦听器,并在完成后再次将其删除。 – user3151902

+0

好的。我看到你在那里做了什么;)我希望有一个更好的解决方案 –