placer un JPanel transparent sur un autre JPanel ne fonctionne pas
Je suis en train de placer un Composite sur le dessus de l'autre un Composite qui contient un JTextArea et un bouton et je veux le haut apnel être transparent. J'ai essayé en faisant le setOpaque(false) de la partie supérieure du panneau. mais ça ne fonctionne pas. Quelqu'un peut-il m'aider à passer à travers? Merci à l'avance!
public class JpanelTest extends JPanel
{
public JpanelTest()
{
super();
onInit();
}
private void onInit()
{
setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JTextArea(100,100),BorderLayout.CENTER);
panel.add(new JButton("submit"),BorderLayout.SOUTH);
JPanel glass = new JPanel();
glass.setOpaque(false);
add(panel,BorderLayout.CENTER);
add(glass,BorderLayout.CENTER);
setVisible(true);
}
public static void main(String args[])
{
new JpanelTest();
}
}
source d'informationauteur Nikhil
Vous devez vous connecter pour publier un commentaire.
En effet, il serait utile de dire la raison pour laquelle vous souhaitez panneaux l'un sur l'autre.
De départ avec votre code, et de le changer beaucoup de choses, je l'ai eu à travailler, mais il ne pourrait pas faire ce que vous attendez...
Si totalement transparent, et bien, c'est comme il n'est pas ici! Quand opaque, il vient de se couvre une partie de l'interface graphique, mais n'empêche pas les clics de souris, par exemple.
Découvrez ce tutoriel sur l'utilisation de Swing Racine Volets.
1) il y a un peu de moyens, il n'est pas question de mettre un Composite, avec la couverture complète
JFrames/JPanel area
ou seulement une partie deRectangle /Dimension
qui renvoieJFrames/JPanel
utilisation
JLayer(Java7)
basé surJXLayer (Java6)
utilisation
GlassPane
utilisation
JViewport
utilisation
OverlayLayout
utilisation transucent
JDialog /JWindow
2) tout dépend de si vous voulez protéger contre
mouse
et les principauxevents
de latop layer
àbottom
ou pas (pour éviterredispatch
événementsfrom - to
et vice versa)