1

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

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

根据DefaultTreeModel需要处理所有插入和删除以及树更新。我必须弄清楚这对我自己的模型是如何工作的。

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

4

1 回答 1

3

如何使用树:创建数据模型中所述,“TreeModel接口接受任何类型的对象作为树节点。” 您的自定义TreeModel可以有效地反映您的“预先存在的分层数据结构”。

作为一个具体的例子,看看这里这里FileTreeModel引用的 , 。唯一缺少的是管道,API 中提供了相关说明。TreeModelListenerEventListenerList

附录:关于渲染效率,JTree使用享元模式只渲染可见节点。在你的中触发适当TreeModelEventTreeModel将允许列表树对模型中的更改做出反应。DefaultTreeModel是一个有用的指南。

于 2013-06-25T19:42:54.783 回答