我目前有一张大桌子(aprox 1000行)和大约20列。在20列中,我需要每2-3秒刷新一次(保持从对象创建开始经过的时间),我已经尝试过每隔3秒刷新一次整个表,但由于行数很多,这是一个很大的性能这整个表刷新了。
有人在JFace tableviewer中看到过只刷新一个单元格/一列的方法吗?我需要一个经过时间的列刷新,就是这样。
非常感谢任何帮助。
由于 米尔恰
答案 0 :(得分:2)
我看到TableViewer不希望连续刷新一个单元格。
AbstractTableViewer
protected void doUpdateItem(Widget widget, Object element, boolean fullMap)
您需要覆盖上述方法。当前实现刷新整行(基本上在每个单元格上调用LabelProvider
)
您可以遵循相同的实现,但会调用特定ViewerCell
答案 1 :(得分:1)
当表示表行的模型的对象列表发生更改时,TableViewer的refresh()方法将被触发。如果只需要更新特定行或单元格中显示的文本或图像,则应使用update()方法。有一些方法的变体可以让你根据需要尽可能少地更新。