2011-05-12 67 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