2

私は現在、大きなテーブル(約1000行)と約20列を持っています。20列のうち2〜3秒に1回更新する必要があります(オブジェクト作成からの経過時間を保持します)、3秒ごとにテーブル全体を更新してこれを試しましたが、行が非常に多いため、パフォーマンスが高くなりますこのテーブル全体の更新にペナルティがあります。

JFaceテーブルビューアで1つのセル/1つの列だけを更新する方法を見た人はいますか?1つの経過時間の列を更新する必要があります。それだけです。

どんな助けでも大歓迎です。

ありがとうMircea

4

2 に答える 2

3

TableViewerは、連続した1つのセルだけを更新することを期待していなかったようです。

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 に答える