2010-03-28 25 views
6

¿Es posible crear un JFrame que tenga un fondo transparente y dibujar una imagen en él, de modo que solo la imagen sea visible sin bordes ni fondo?Fondo JFrame transparente

Respuesta

9

Ver Translucent and Shaped Swing Windows por Kirill Grouchnikov.

+0

El enlace está ahora muerto. Google sugiere esta publicación en el blog: http://www.pushing-pixels.org/2008/02/27/translucent-and-shaped-windows-in-core-java.html –

0

Es posible.

Si su JFrame es una variable local o de campo:

myJFrame.setUndecorated(true); 

Si su clase extiende JFrame:

setUndecorated(true); 
+1

cierto que desde jdk7, la transparencia solo es compatible con marcos sin decorar. Sin embargo, cómo llamar a los métodos debería ser un conocimiento básico :-) – kleopatra

9

Sí, es posible de muchas maneras. Esta es una de ellas:

setUndecorated(true); 
setBackground(new Color(1.0f,1.0f,1.0f,0.5f)); 

cuarto flotador (la cual di a 0.5f) en el constructor del color es el canal alfa. Puede ser 0.0f - 1.0f dependiendo de la transparencia que desee.

1

También debe hacer que el panel de contenido sea transparente.

frame.setUndecorated(true); 
frame.getContentPane().setBackground(new Color(1.0f,1.0f,1.0f,0.0f)); 
frame.setBackground(new Color(1.0f,1.0f,1.0f,0.0f));