我正在实施Java JTree面板。此面板包含树状结构的树状结构,树状结构是树状结构(复合材料列表 - 不同类别的列表)。我根据我定义的一组接口从外部jar实现中获得这些数据结构。如何在节点对象的状态更改时动态更改JTree视图?
treenodes包含一个复选框,用户可以检查以指示被检查节点和所有子节点将变为“活动”,也就是说,由节点表示的对象应该执行某些操作,例如从一个数据库。
也可以在不激活它们的情况下选择treenodes,也就是说,没有检查复选框。
最重要的是,程序的其他部分也可以切换数据模型对象的激活状态。所以构建树模型的数据模型就是激活状态的来源。这必须通过动态地(取消)选中复选框来反映在树视图中。
现在,我该如何实现这个整体?谁应该听取哪些更改?
我现在已经将所有在节点中的类从包含激活字段的抽象类扩展而来。这是真正的数据源。当此字段更改时,应通知所有订阅的侦听器(EventListener),其中包括复选框。
我也有一个TreeSelectionModel,它基于默认的TreeSelectionModel,但扩展了功能来检查是否需要检查孩子/父母。
我的问题也许不是很清楚,但这段复杂的代码也是如此。希望你能帮助。