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

时间:2012-12-18 05:39:37

标签: java swing jtree

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

目前,我正在通过向每个树添加TreeSelectionListener并在其他树上调用setSelectedPath(如果getSelectedPaths不包含路径)来执行此操作。< / p>

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

似乎没有办法在不触发树选择监听器的情况下设置所选路径,我宁愿不去尝试删除监听器。

我正在考虑在树之间共享TreeSelectionModel的可能性,但考虑到DefaultTreeSelectionModel的大小,这看起来很多。

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

1 个答案:

答案 0 :(得分:2)

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

在侦听器中,只需检查isAPI ==是否为true并从侦听器返回。