gpt4 book ai didi

java - 如何在节点对象的状态更改时动态更改 JTree View ?

转载 作者:行者123 更新时间:2023-11-30 07:39:10 24 4
gpt4 key购买 nike

我正在实现一个 Java JTree 面板。该面板包含一个树模型,该树模型由一组树状数据结构构建(复合列表的列表 - 不同的类)。我根据我定义的一组接口(interface)从外部 jar 实现中获取这些数据结构。

树节点包含一个复选框,用户可以选中该复选框以指示选中的节点和所有子节点都将变为“Activity 的”,也就是说,节点代表的对象应该做一些事情,比如从数据库。

也可以在不“激活”它们的情况下选择树节点,也就是说,不选中复选框。

最重要的是,程序的其他部分也可以切换数据模型对象的激活状态。因此,构建树模型的数据模型是激活状态的来源。这必须通过动态(取消)选中复选框来反射(reflect)在 TreeView 中。

现在,我该如何实现这一切?谁应该倾听哪些变化?

我现在让节点中的所有类都从一个包含激活字段的抽象类扩展而来。这是真正的数据源。当此字段发生变化时,应通知所有订阅的监听器 (EventListener),包括复选框。

我还有一个 TreeSelectionModel,它基于默认的 TreeSelectionModel,但扩展了功能以检查是否需要检查 child / parent 。

我的问题可能不是很清楚,但这段复杂的代码也是如此。希望你能帮上忙。

最佳答案

你似乎有一堆 Activity 部件。最好通过您的 TreeModel 汇集所有更改,并让您的 JTree 成为监听器,因为它会自动进行。如果您的 TreeModelDefaultTreeModel 的子类,您将获得大量 fire*(fireTableStructureChangedfireTreeNodesChanged 等)方法,这些方法将提醒您的 JTree 重新绘制。确保在 AWT EventQueue 中触发事件。

here is a good tutorial包含大量使用 Tree 的示例。

关于java - 如何在节点对象的状态更改时动态更改 JTree View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com