由於Greg建議,您可以使用PaintListener
覆蓋按鈕的外觀。
例如:
Button button = new Button(shell, SWT.PUSH);
button.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent event) {
event.gc.setBackground(event.display.getSystemColor(SWT.COLOR_GREEN));
event.gc.fillRectangle(event.x, event.y, event.width, event.height);
Image image = event.display.getSystemImage(SWT.ICON_QUESTION);
event.gc.drawImage(image, 0, 0);
}
});
油漆代碼將繪製問號圖像中的綠色背景上的左上角。
請注意,按鈕的computeSize()
方法仍會查閱(空白)文本和圖像以計算按鈕的首選大小。由於這可能不是您想要的大小,您應該將按鈕圖像設置爲您在繪製代碼中使用的圖像,或者建議佈局使用預先計算的大小,例如,通過設置適當的GridData
或RowData
或者您可以使用一個Label
並添加MouseListener
模擬一個按鈕的選擇偵聽器。但是,默認情況下,標籤無法通過製表符遍歷獲得鍵盤焦點,因此可能不會成爲Button
的完整替代品。
顯示您的代碼。 –
您不能刪除邊框。您可以使用「PaintListener」在代碼中完全繪製按鈕。 –
代碼已添加到問題請檢查, –