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();
} 

画像を作成する2つの方法を試しました。

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、空の文字列を返します。オーバーライドしない場合は、常にdisplay element.toString()になります。そのため、そこにデータオブジェクトのtoString()値が表示されます。

于 2012-09-28T19:55:14.713 に答える