【发布时间】:2017-05-09 13:34:07
【问题描述】:
我有一个 TableViewer,并且喜欢在一列上有一个图形。我该怎么做?
什么不工作是:
我用 Canvas 尝试了 TableEditor,sn-p:
MyCanvas canvas = new MyCanvas (tableViewer.getTable(), SWT.NONE, (MyClass)item.getData());
MyCanvas 有一个 PaintListener 做绘图工作。
它可以在表格单元格上绘图,但是当 tableViewer 被过滤时,图形列 - 只有这个 - 保持未过滤:假设表格有 100 行,过滤器匹配 80 行,结果是 80 行有数据,但 Canvas 有 100 行,所以还有 20 行,除了 Canvas 什么都没有显示。
我想问题出在表上而不是 TableViewer 上。我发现有TableViewer.setCellEditors(),但我不知道如何使用它来写入单元格(列)画布。
也许还有另一种可能性,不使用编辑器来获取(过滤!)表格单元格的画布。非常感谢任何解决方案提示。
【问题讨论】:
-
您可能希望查看使用
OwnerDrawLabelProvider作为列标签提供程序。这使您可以直接自己绘制列。 -
非常感谢 - 成功了!
标签: canvas swt cell jface tableviewer