我在jface Dialog窗口中有一个Dialog。treeViewer需要使用setInput().And填充大量项,因此每次打开对话框窗口时,tree都要花费相当长的时间才能显示。
我想知道是否有任何预先实例化和保存treeViewer的方法,以便当对话框窗口打开时,treeViewer被添加到对话框窗口中,并且它立即可见。
发布于 2016-02-25 15:31:57
我不记得见过任何想要这样做的人。创建树必须在UI线程中完成,所以如果不延迟UI,仍然很难做到这一点。
你可以做各种各样的事情:
内容提供程序提供的模型对象可以在任何时候构建,因为它们不是UI对象。因此,您可以在对话框显示之前在后台获取这些信息。
您可以使用使用SWT.VIRTUAL样式的虚拟树和ILazyTreeContentProvider来延迟构建树的部分,直到需要时为止。
如果代码在Eclipse中,则可以使用org.eclipse.ui.progress.DeferredTreeContentManager延迟构建树的部分(关于此方法的文档不多)。
https://stackoverflow.com/questions/35630064
复制相似问题