我目前有一个大表(大约 1000 行)和大约 20 列。在 20 列中,我需要每 2-3 秒刷新一次(保存从对象创建开始的耗时) ,我已经尝试过每 3 秒刷新整个表一次,但由于行数太多,性能要求很高。惩罚整个表刷新。
有人见过一种在 JFace tableviewer 中仅刷新一个单元格/一列的方法吗?我需要刷新一个耗时列,仅此而已。
非常感谢任何帮助。
谢谢 米尔恰
最佳答案
我发现 TableViewer 并没有期望只刷新一行中的一个单元格。
AbstractTableViewer
protected void doUpdateItem(Widget widget, Object element, boolean fullMap)
你需要重写上面的方法。当前实现刷新整行(基本上在每个单元格上调用 LabelProvider
)
您可以遵循相同的实现,但在特定的ViewerCell
上调用更新
关于eclipse - 仅从 SWT/JFace TableViewer 刷新一列/单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996469/