2012-09-19 63 views
0

我想添加一個圖像到我的表中的按鈕。該表格顯示在我的主GUI中。我正在使用TableViewer來顯示錶格。SWT - 將圖像添加到表中的按鈕 - tableViewer

private void createTableViewer(Composite parent) { 

    viewer = new AplotDataTableViewer(parent, SWT.BORDER|SWT.V_SCROLL|SWT.FULL_SELECTION); 
    viewer.setInput(AplotDataModel.getInstance().getArrayData()); 

}

AplotDataTableViewer是一個單獨的類。 AplotDataTableViewer的構造函數接受了複合和Style。

因此,當我嘗試在AplotDataTableViewer類中添加圖像時,它給我一個Display變量的錯誤。我認爲這是因爲圖像需要顯示。

Image image = new Image(display, String); 

我不確定它需要什麼顯示?如果它需要來自主GUI的顯示,我該如何得到它?

回答

1

你可以使用:

Image image = new Image(Display.getDefault(), "path/to/image.png"); 

或者使用Display.getCurrent()代替。

欲瞭解更多詳情,以下是有關SWT一個很好的教程Image S:

Taking a look at SWT Images

0

我不知道你做了什麼錯誤。我猜測它可能是「無效的線程訪問」,因爲您正在從非UI線程訪問UI對象。

您可以參考Baz給出的鏈接來創建圖像。如果你的插件有Activator,只需檢查public static ImageDescriptor getImageDescriptor(String path)這裏的路徑以ex:/icons/image.png開頭。用戶ImageDescriptor.createImage(true)將提供您正在尋找的實際圖像。在從imagedescriptor創建新的圖像之前,請跟蹤緩存中的圖像。

在按鈕上設置圖像,檢查文檔。很少有平臺不支持設置圖像和文字。