调用setComparator()时,Jface TableViewer是否需要时间加载?

时间:2014-11-04 09:57:40

标签: java swt jface

我有一个TableViewer,表格中有15列。我已经实现了自己的内容和标签提供商。我需要对所有列进行排序,因此在表查看器上为所有列调用setComparator()。每次调用此setComparator()时,都会调用内容提供程序的getElements(),从而导致加载表的延迟。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果getElements()实际上导致延迟,因为它执行了昂贵的操作(例如从数据库中获取数据),那么您可以缓冲或缓存提取的数据,而不是在每次调用时重新检索它。

如果排序是固定的(即用户无法更改),您可以从getElements()返回预先排序的元素,而不是调用setComparator()