[英]JTree how to know a node has been expanded but not selected
JTree 提供了 SelectionListener 和 ExpansionListener。 但据我所知,当您仅展开节点(单击 +/- 图标)时,也会触发选择事件。 1) 如果我点击扩展图标,我会得到 1 个扩展事件 + 1 个选择事件 2) 如果我点击一个节点本身,我只会得到 1 个选择事件
有什么方法可以在用户展开节点时不触发选择事件?
或者...我怎么能只检测到扩展(没有选择)? 我只想在真正选择节点时执行耗时的操作,并且仅在扩展时不执行任何操作(除了在 GUI 中扩展节点)知道吗? 谢谢!
您可以实现TreeWillExpandListener
接口来拦截TreeExpansionEvent
,如如何编写 Tree-Will-Expand Listener 中所示。 TreeExpandEventDemo2
就是一个例子。
我认为使用鼠标侦听器可以区分扩展和选择,因为函数 getLastSelectedPathComponent() 返回最后选择的节点而不是扩展的节点,因此如果您始终存储最后选择的组件,则可以检查它是否更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.