JTree如何知道一个节点已被扩展但未被选中

问题描述 投票:0回答:2

JTree提供SelectionListener和ExpansionListener。但是据我所见,当您仅扩展节点(单击+/-图标)时,也会触发选择事件。1)如果单击扩展图标,将获得1个用于扩展的事件+ 1个用于选择的事件2)如果我单击一个节点本身,则只会得到1个事件供选择

当用户展开节点时,是否有没有触发选择事件的方法?

或者...我怎么只能检测到扩展(没有选择)?我只想在真正选择节点时执行耗时的操作,而仅在扩展时不执行任何操作(除非在GUI中扩展了该节点)任何的想法?谢谢!

java swing selection jtree expansion
2个回答
1
投票

您可以实现TreeWillExpandListener接口来拦截TreeExpansionEvent,如How to Write a Tree-Will-Expand Listener所示。 TreeExpandEventDemo2是一个示例。


0
投票

我在我的应用中存在相同的问题。我正在懒加载。我希望节点仅将用户单击加载到其图标。关键是我不知道节点是否有孩子。我的临时解决方案是定义一个有孩子的节点,然后根据选择事件加载他们,我不使用树将事件扩展为延迟加载。我有什么方法可以只实现treeWillExpand事件。

© www.soinside.com 2019 - 2024. All rights reserved.