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

时间:2013-03-12 21:59:57

标签: java swing selection jtree expansion

JTree提供SelectionListener和ExpansionListener。 但是,只要我只展开一个节点(单击+/-图标),我就会看到一个选择事件。 1)如果我点击扩展图标,我会为扩展+ 1事件获得1个事件进行选择 2)如果我点击一个节点本身,我只得到一个选择事件

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

或者......我怎么才能检测到扩展(没有选择)?我只想在真正选择节点时执行一个耗时的操作,并且只对扩展做任何事情(除了在GUI中扩展节点) 任何的想法? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以实施TreeWillExpandListener界面拦截TreeExpansionEvent,如How to Write a Tree-Will-Expand Listener所示。 TreeExpandEventDemo2就是一个例子。

答案 1 :(得分:0)

我认为使用鼠标侦听器可以区分扩展与选择,因为函数getLastSelectedPathComponent()返回最后选择的节点,而不是扩展的节点,因此,如果始终存储最后选择的组件,则可以检查其是否已更改