仅刷新SWT / JFace TableViewer中的一个列/单元格

时间:2013-02-21 07:08:55

标签: eclipse jface tableviewer

我目前有一张大桌子(aprox 1000行)和大约20列。在20列中,我需要每2-3秒刷新一次(保持从对象创建开始经过的时间),我已经尝试过每隔3秒刷新一次整个表,但由于行数很多,这是一个很大的性能这整个表刷新了。

有人在JFace tableviewer中看到过只刷新一个单元格/一列的方法吗?我需要一个经过时间的列刷新,就是这样。

非常感谢任何帮助。

由于 米尔恰

2 个答案:

答案 0 :(得分:2)

我看到TableViewer不希望连续刷新一个单元格。

AbstractTableViewer
protected void doUpdateItem(Widget widget, Object element, boolean fullMap)

您需要覆盖上述方法。当前实现刷新整行(基本上在每个单元格上调用LabelProvider

您可以遵循相同的实现,但会调用特定ViewerCell

的更新

答案 1 :(得分:1)

当表示表行的模型的对象列表发生更改时,TableViewer的refresh()方法将被触发。如果只需要更新特定行或单元格中显示的文本或图像,则应使用update()方法。有一些方法的变体可以让你根据需要尽可能少地更新。