2012-09-28 95 views
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"); 

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

例:

[图] [email protected]

如何删除文本,只显示图像?

回答

2

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

+0

我需要一个getText()以及该列的getImage()? – jkteater

+2

总是覆盖getText()和getImage(),并返回要在表格单元格中显示的值。 –