将JTree选择绑定到外部集合?

时间:2013-12-15 16:11:37

标签: java swing jtree

我有一个JPanel,就像一个带有元素的画布,以及面板旁边JTree中列出的元素。现在,我在JPanel上实现了我的元素选择,它包含实现TreeNode接口的元素,并且基本上是树的节点。

是否可以直接将树选择绑定到该集合,以便我可以同步两个选择而无需编写太多代码?

我调查了TreeSelectionModel界面,但这看起来有点矫枉过正。我希望得到的是一个内置类,它在其构造函数中采用了一个集合,或者类似的东西。

我会发布一个sscce,但此时我的项目是非常不干净的,并且会有大量的代码并不真正相关。

我的JTree使用具有我的根节点(DefaultTreeModel)的Workspace作为其构造函数的唯一参数。现在,我的Workspace有一个代表我的图表模型的TreeNode个集合。但是,图表本身是一个基于模型形成画家的视图。

图表的模型还有一个名为SelectedElements的集合,它根据选择添加和删除元素(通过点击或套索完成)。

1 个答案:

答案 0 :(得分:1)

我认为虽然您的JPanel中只显示了叶子,但仍需要将此显示基于完整的树。换句话说,您应该使用JTree的模型作为JPanel显示的基础。考虑它只是同一模型的另一个视图。然后你也可以轻松地共享选择监听器,甚至不需要创建任何新的TreeSelectionListener,而只需使用与JTree相同的那个。