0

我根据布尔值的状态将图像放在列中。

col = new TableViewerColumn(this, SWT.NONE);
  col.getColumn().setWidth(70);
  col.getColumn().setText("Print Status");
  col.setLabelProvider(new ColumnLabelProvider() {
  @Override
  public Image getImage(Object element) {
    if (((AplotResultsDataModel.ResultsData) element).isSuccess()) {
      return SUCCESS;
    } 
    return FAIL;
    }
  }); 

这是getImage方法

private static Image getImage(String file) {
  Bundle bundle = FrameworkUtil.getBundle(Viewer.class);
  URL url = FileLocator.find(bundle, new Path("icons/" + file), null);
  ImageDescriptor image = ImageDescriptor.createFromURL(url);
  return image.createImage();
} 

我尝试了两种创建图像的方法。

private static final Image FAIL = getImage("failed.png");

final Image FAIL = new Image(Display.getDefault() ,"D:/Users/workspace/com.aplot/icons/failed.png");

在这两种情况下,图像都会显示,但旁边有一个文本路径。路径看起来像是该列的数组值。

例子:

[图片] com.aplot.datamodel.ResultsDataModel$ResultsData@9cce9

如何删除文本并仅显示图像?

4

1 回答 1

2

覆盖getText()方法ColumnLabelProvider并返回空字符串。如果你不覆盖,它总是显示 element.toString()。这就是为什么您在那里看到数据对象的 toString() 值的原因。

于 2012-09-28T19:55:14.713 回答