繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM