2011-05-12 19 views
5

¿Hay alguna vez en Java SWT que puedo colocar una etiqueta encima de otra etiqueta y luego tener la etiqueta en la parte superior para tener un fondo transparente?Fondo transparente en la etiqueta Java SWT

Estoy haciendo esto en una clase que amplía Composite ya que quiero crear un SWT "botón de fantasía" personalizado de 2 etiquetas. Entonces, la etiqueta de abajo será la etiqueta que consiste en solo una imagen, mientras que la que está arriba será la etiqueta con el texto del "botón de fantasía". Pero la etiqueta en la parte superior debe tener un fondo transparente para no cubrir la imagen debajo de ella.

Actualmente, la etiqueta en la parte superior está cubriendo la etiqueta a continuación.

¿Alguna idea de cómo podría hacer esto?

Gracias!

Respuesta

1

En su lugar, podría intentar hacer lo siguiente para obtener el mismo resultado.

  • crear una etiqueta
  • Asignar una imagen a la etiqueta utilizando una cáscara
  • A continuación, utilice "setText()" para escribir algo en la etiqueta.

El texto aparecerá sobre la imagen. Podrás ver la imagen.

(Mostrando solo código relavent) Ejemplo de etiqueta con texto/imagen.

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. "); 

Dado que desea hacer botones. Puede usar la misma lógica, usando también la API "Button". Puede crear un botón con una imagen y luego establecer cualquier texto sobre él.

(Mostrando único código relavent) Ejemplo de Botón

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

espero que esto es lo que está tratando de hacer.

+0

Mediante el uso de un botón, la adición de un correo electrónico sólo actuará como un botón" icono "en el lado izquierdo del botón. No reemplaza todo el botón de la ventana nativa por un botón basado en una imagen creada a partir de png. – Carven

+0

En la segunda sugerencia, el TEXTO está oculto por la imagen. – marcolopes

1

en lugar de hacer

drawString("text", x, y) 

hacer

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

que hará que el fondo transparente, según the documentation