gpt4 book ai didi

java - 在插入/删除节点和更新树时在自定义树模型或默认树模型之间进行选择

转载 作者:行者123 更新时间:2023-11-29 05:41:40 25 4
gpt4 key购买 nike

我有一组用于命令行应用程序的节点,我想在其上放置一个 GUI。我想直观地显示树并使用 JTree。我已经编写了自己的树模型,它实现了 TreeModel 接口(interface),并且树按预期呈现。

但现在我希望能够插入或删除节点。目前,每当我执行插入或删除操作时,我只是重新绘制树,这是一个糟糕的解决方案,尤其是在有数千个节点的情况下。

DefaultTreeModel 根据需要处理所有的插入和删除以及树更新。我必须弄清楚它如何适用于我自己的模型。

使用自定义树模型的唯一原因是我可以使用现有的节点对象。这个理由“足够好”来实现自定义模型,还是我应该寻找一种方法来使用默认的可变树节点对象?

最佳答案

How to Use Trees: Creating a Data Model 中所述, “TreeModel 接口(interface)接受任何类型的对象作为树节点。”您的自定义 TreeModel 可以有效地反射(reflect)您的“预先存在的分层数据结构”。

作为具体示例,请查看 FileTreeModel , 引用 herehere .唯一缺少的是 TreeModelListener 管道,其说明可在 EventListenerList 中找到API。

附录:关于渲染效率,JTree 使用 flyweight pattern只渲染可见节点。在您的 TreeModel 中触发适当的 TreeModelEvent 将允许列表树对模型中的更改使用react。 DefaultTreeModel 是一个有用的指南。

关于java - 在插入/删除节点和更新树时在自定义树模型或默认树模型之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17305251/

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