2011-05-12 101 views
5

在Java SWT中,我可以在另一個標籤上放置一個標籤,然後讓標籤頂部有透明背景嗎?Java SWT標籤中的透明背景

我在擴展複合類的類中這樣做,因爲我想從2個標籤中創建一個自定義SWT「幻想按鈕」。因此,下面的標籤將是僅包含圖像的標籤,而上面的標籤將是帶有「花哨按鈕」文本的標籤。但是,頂部的標籤必須有一個透明的背景,以便不覆蓋它下面的圖像。

目前,頂部的標籤覆蓋下面的標籤。

任何想法我可以做到這一點?

謝謝!

回答

1

相反,您可以嘗試執行以下操作以獲得相同的結果。

  • 創建一個標籤
  • 使用shell
  • 然後使用「的setText()」將圖像分配到標籤寫在標籤上的東西。

文字將出現在圖像上方。你將能夠看到圖像。

(僅顯示相關代碼) 具有文本/圖像的標籤示例。

Image image = new Image(display, "c:\\picture.jpeg"); 
Shell shell = new Shell(SWT.NO_TRIM); 
shell.setBounds(10,10,200,200); 
shell.setBackgroundImage(image); 
shell.setBackgroundMode(SWT.INHERIT_DEFAULT); 
Label label = new Label(shell, SWT.NONE); 
label.setText("LAbel text here. "); 

因爲您想製作按鈕。 您也可以使用「Button」api使用相同的邏輯。 您可以創建一個帶有圖像的按鈕,然後在其上面設置任何文本。按鈕

Button button = new Button(shell, SWT.PUSH); 
button.setImage(image); 
button.setText("Click Me"); 

(只顯示relavent代碼) 例子,我希望這是你正在嘗試做的。的

+0

通過使用一個按鈕,添加電子郵件只會充當「按鈕圖標「在按鈕的左側。它不會將整個本機窗口按鈕替換爲基於由png創建的圖像的按鈕。 – Carven 2011-05-14 14:22:57

+0

在第二個建議中,TEXT將他隱藏的圖像。 – marcolopes 2012-09-03 00:39:09

1

,而不是做

drawString("text", x, y) 

drawString("text", x, y, true) 

它會使背景透明,按照the documentation