Est-il possible, en Java, de dessiner un fond JPanel
en transparence, à l'exception des composants?Rendre un JPanel ne dessine pas son arrière-plan (transparent)
Répondre
setOpaque(false)
Il va passer la peinture à l'arrière-plan de son parent, qui peut tirer son propre fond.
Vous pouvez effectuer une capture d'écran, puis l'utiliser pour peindre l'arrière-plan du panneau.
Cet article semble avoir quelques informations à portée de main sur la façon de créer des fenêtres en forme et transparentes en Java:
http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html
Java SE 7 est requis. J'ai utilisé Linux qui a OpenJDK 6.0 et ne fonctionne pas. – YumYumYum
Techniquement, un JPanel peut commencer non opague. Cela était vrai pour le look Gtk & sentir dans 1,5 (ou 1,4?), Mais aucun autre PL & Fs autant que je sache.
class TransparentJPanel extends JPanel
{
TransparentJPanel()
{
super() ;
this.setOpaque(false) ; // this will make the JPanel transparent
// but not its components (JLabel, TextField etc.)
this.setLayout(null) ;
}
}
Si vous utilisez NetBeans, puis effectuez les opérations suivantes: -
- Cliquez droit sur
JPanel
. - Faites défiler vers le bas et recherchez ((Opaque)). Ça doit être là.
- Décochez la case.
- Maintenant, votre arrière-plan
JPanel
sera supprimé et ce qui apparaîtra dansJPanel
Arrière-plan est votre arrière-plan deJFrame
.
Je savais que ce serait simple. Merci! – jjnguy