首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JFace TableViewer:在画布上写字

JFace TableViewer:在画布上写字
EN

Stack Overflow用户
提问于 2017-05-08 15:37:19
回答 1查看 50关注 0票数 0

我有一个TableViewer,并喜欢有一个列上的图形。我该怎么做呢?

不起作用的是:

我用画布、代码片段尝试了TableEditor:

代码语言:javascript
复制
MyCanvas canvas = new MyCanvas (tableViewer.getTable(), SWT.NONE, (MyClass)item.getData());

MyCanvas有一个PaintListener来做绘图工作。

它可以在表格单元格上绘制,但当过滤tableViewer时,图形列-仅此列-保持未过滤状态:假设表格有100行,过滤器匹配80行,结果是包含数据的80行,但包含画布的100行,也就是只显示画布的20行。

我认为问题来自于桌面上的TableEditor,而不是TableViewer。我发现有TableViewer.setCellEditors(),但我不知道如何使用它来写入单元格(列)的画布。

也许甚至还有另一种可能,不使用编辑器来获得一个的画布(已过滤!)表格单元格。非常感谢您的任何解决方案提示。

EN

回答 1

Stack Overflow用户

发布于 2017-05-09 13:34:07

根据greg449的提示,解决方案是:

代码语言:javascript
复制
TableViewerColumn tvc = new TableViewerColumn(tableViewer, SWT.NONE);
tvc.getColumn().setText("Headline");
tvc.getColumn().setWidth(200);
tvc.setLabelProvider(new ProjectBarDrawer());

...

class ProjectBarDrawer extends OwnerDrawLabelProvider {

  @Override
  protected void paint(Event event, Object element) {
    // do the painting on event.gc here
  }     

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43842196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档