2

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

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

任何帮助是极大的赞赏。

谢谢米尔恰

4

2 回答 2

3

我看到 TableViewer 没想到会连续刷新一个单元格。

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

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

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

于 2013-02-22T20:42:58.557 回答
1

TableViewer 的 refresh() 方法应在代表表行模型的对象列表发生更改时触发。如果您只需要更新特定行或单元格中显示的文本或图像,则应使用 update() 方法。该方法有多种变体,可让您尽可能少地更新或尽可能多地更新。

于 2013-02-21T16:37:16.650 回答