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