java - 同步多个 JTree 对象中的选定节点

标签 java swing jtree

我希望多个 JTree(都具有非常相似的内容)同步选择的节点(当每棵树中存在相同的节点时)。

目前,我正在通过向每棵树添加一个 TreeSelectionListener 并在其他树上调用 setSelectedPath (如果 getSelectedPaths不包含路径)。

但是,我已经看到这会导致无限循环,其中每棵树都重复选择不同的节点(我不知道如何重现这一点,但我在拖动节点时看到了它)。

似乎没有一种方法可以在不触发树选择监听器的情况下设置所选路径,而且我宁愿不尝试删除监听器。

我正在考虑在树之间共享 TreeSelectionModel 的可能性,但考虑到 DefaultTreeSelectionModel 的大小,这看起来需要大量工作。

还有其他方法可以达到同样的效果吗?

最佳答案

添加一个标志 isAPI。当您以编程方式选择树中的路径时设置该标志,并在设置路径后重置它。

在监听器中,只需检查 isAPI==true 并从监听器返回。

关于java - 同步多个 JTree 对象中的选定节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13926949/

相关文章:

java - 将注释插入 JTree 时出现问题

java - 删除框架的标题栏并保留调整大小机制 - Java

java - 在 jTree 上创建右键单击弹出菜单

java - 防止在 JTree 中的节点扩展时选择节点

Java/Android SQL Helper Class 升级时为什么丢表?

java - 如何为 10 x 10 网格按钮布局中的每个 JButton 提供唯一的 ID/名称

java - timer.schedule() 根本不工作(在 Java 中)

java - 刷新页面后我需要选择下一个网页元素吗?我能怎么做?

java - 从 JButton ActionPerformed 调用耗时的方法

java - 如何在 Spring Boot 和 Hibernate 中统计特定 id 的记录