我在我的swing应用程序中有一个JTree,显示一个long数据列表(int树模式)。Java Swing JTree TreeModel - 如何做懒惰的初始化
问题是TreeModel在初始化过程中加载所有项目,我不需要全部加载它们。在一个屏幕上只有100个可显示,因此没有意义要加载数千个数据以在一个屏幕中仅显示100个数据。
问:有什么办法可以在TreeModel中进行一种惰性初始化,并在需要时检索数据?
感谢所有
我在我的swing应用程序中有一个JTree,显示一个long数据列表(int树模式)。Java Swing JTree TreeModel - 如何做懒惰的初始化
问题是TreeModel在初始化过程中加载所有项目,我不需要全部加载它们。在一个屏幕上只有100个可显示,因此没有意义要加载数千个数据以在一个屏幕中仅显示100个数据。
问:有什么办法可以在TreeModel中进行一种惰性初始化,并在需要时检索数据?
感谢所有
TreeWillExpandListener 见例如this
我假设你正在使用DefaultTreeModel的。
我已经通过实施自定义TreeModel解决了这样的问题。它看起来很复杂,但一旦你进入它,你会发现它并没有那么糟糕。你只有8种方法可以实现,如果你已经有了一个类似树的数据结构,那么大多数方法都是非常简单的。
这种方法的主要好处是您可以完全控制底层模型。
@StanislavL:问题是,当我将模型设置为Tree时,即使在显示它们之前立即检索所有记录(近2000条记录)。 – mhshams 2011-05-01 11:12:53
@StanislavL +1很好的答案我可以看到你如何使用它来达到这个目的。 – Boro 2011-05-01 11:38:05
@mohammad shamsi你可以请分享代码,我可以玩它,我讨厌从头开始。我对可复制的解决方案感兴趣,以备将来参考。 – Boro 2011-05-01 11:49:39