2012-09-28 93 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(),並返回要在表格單元格中顯示的值。 –