2010-03-28 11 views
6

È possibile creare un JFrame con uno sfondo trasparente e disegnare un'immagine su di esso, in modo che solo l'immagine sia visibile senza bordi o sfondo?Sfondo trasparente JFrame

risposta

9

Vedere Translucent and Shaped Swing Windows di Kirill Grouchnikov.

+0

Il collegamento è morto. Google suggerisce questo post sul blog: http://www.pushing-pixels.org/2008/02/27/translucent-and-shaped-windows-in-core-java.html –

0

È possibile.

Se il JFrame è una variabile locale o campo:

myJFrame.setUndecorated(true); 

Se la classe estende JFrame:

setUndecorated(true); 
+1

vero che dal jdk7, la trasparenza è supportata solo per cornici non decorate. Come chiamare i metodi dovrebbe essere una conoscenza di base, però :-) – kleopatra

9

Sì, è possibile in molti modi. Questo è uno di loro:

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

4th galleggiante (che ho impostato a 0.5f) nel costruttore di colore è canale alfa. Può essere 0.0f - 1.0f dipende dalla trasparenza che si desidera.

1

Si dovrebbe rendere trasparente anche il riquadro del contenuto.

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