我将图像放在一列中,具体取决于布尔值的状态。
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");
在这两种情况下,图像都会显示,但旁边有文本路径。该路径看起来像是该列的数组值。
实施例
[image] com.aplot.datamodel.ResultsDataModel$ResultsData@9cce9
如何删除文字并仅显示图像?
答案 0 :(得分:2)
覆盖getText()
中的ColumnLabelProvider
方法并返回空字符串。如果你不重写,它总是显示element.toString()。这就是你在那里看到数据对象的toString()值的原因。