SWT TreeViewer 在填充许多元素时速度很慢
我是java世界的新手,所以如果我的问题很微不足道,我很抱歉。
我正在开发 Eclipse 视图部分,并使用以下数据结构填充 SWT 树视图。所有数据都在内存中:
Node1
Child1
Child2
Node2
Child1
...
Child2915
我认为这不是一棵很大的树,但绘制速度很慢(10秒)。我在 .NET 中管理了包含超过 10,000 个元素的树,并且加载顺利。我不知道我是否已经实现了代码,但是如果我没有调用 BeginUpdate() - EndUpdate()
,.NET 中也会出现同样的问题。
我必须在 Java/SWT 中调用类似的东西吗?关于为什么树这么慢还有其他提示吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在创建树时使用
SWT.VIRTUAL
标志来帮助提高性能。有关详细信息,请参阅 虚拟树和表
这也可以与 JFace TreeViewer 结合使用。有关更多详细信息,请参阅 JFace TreeViewer 上的这篇文章(尽管本文没有具体提及虚拟标志)
You could use the
SWT.VIRTUAL
flag when creating the Tree to help with the performanceFor more information, see this article on Virtual Trees and Tables
This can also be combined with the JFace TreeViewer. See this article on the JFace TreeViewer for more details (although this doesn't specifically mention the virtual flag)
最后,我在 TreeViewer 中调用刷新后使用了
setRedraw(boolean value)
。Finally, I used
setRedraw(boolean value)
after calling refresh in my TreeViewer.