私はTableViewerを持っていて、1つの列にグラフィックスを持つのが好きです。これどうやってするの?動作していないことは何JFace TableViewer:キャンバスに書く
は次のとおりです。
私はキャンバスでTableEditorを試してみました、スニペット:
MyCanvas canvas = new MyCanvas (tableViewer.getTable(), SWT.NONE, (MyClass)item.getData());
をMyCanvasが描画仕事をしてPaintListener
を持ちます。
テーブルセルで図面を作成しましたが、tableViewer
をフィルタリングすると、グラフィックスの列がフィルタリングされずに残っていました:テーブルに100行、フィルタが80行に一致したとします。データは100行、Canvasは20行もあり、Canvas以外は何も表示されませんでした。
問題はTableViewerではなくTableEditorを持つことに起因すると考えられます。私はTableViewer.setCellEditors()
があることを知りましたが、私はそれを使ってセルの(列の)キャンバスに書き込む方法を理解できません。
おそらく、エディタを使用せずに(フィルタされた!)表のセルのキャンバスを取得する可能性もあります。ソリューションのヒントありがとうございました。 greg449'sにAccoring
あなたが列ラベル・プロバイダーとして 'OwnerDrawLabelProvider'を使用して見たいかもしれません。これにより、列を直接描画することができます。 –
ありがとう、そのトリックでした! –