JTree提供SelectionListener和ExpansionListener。 但是,只要我只展开一个节点(单击+/-图标),我就会看到一个选择事件。 1)如果我点击扩展图标,我会为扩展+ 1事件获得1个事件进行选择 2)如果我点击一个节点本身,我只得到一个选择事件
当用户展开节点时,是否有任何未触发选择事件的方法?
或者......我怎么才能检测到扩展(没有选择)?我只想在真正选择节点时执行一个耗时的操作,并且只对扩展做任何事情(除了在GUI中扩展节点) 任何的想法? 谢谢!
答案 0 :(得分:1)
您可以实施TreeWillExpandListener
界面拦截TreeExpansionEvent
,如How to Write a Tree-Will-Expand Listener所示。 TreeExpandEventDemo2
就是一个例子。
答案 1 :(得分:0)
我认为使用鼠标侦听器可以区分扩展与选择,因为函数getLastSelectedPathComponent()返回最后选择的节点,而不是扩展的节点,因此,如果始终存储最后选择的组件,则可以检查其是否已更改