[JAVA] JPanel et pack()
Résolu/Fermé
Salut à tous!
Je fais actuellement un programme java avec plusieurs JPanel dans un container. Je dois imposer une taille à un de ceux-ci (il contient une image et je veux lui conserver sa taille) et j'utilise la méthode pack(). Seulement, en faisant ceci, tous mes JPanel prennent les dimensions de celui contenant l'image même si j'impose un preferredSize aux autres. Que dois-je faire pour régler le problème?
Merci d'avance!
Johan.
Je fais actuellement un programme java avec plusieurs JPanel dans un container. Je dois imposer une taille à un de ceux-ci (il contient une image et je veux lui conserver sa taille) et j'utilise la méthode pack(). Seulement, en faisant ceci, tous mes JPanel prennent les dimensions de celui contenant l'image même si j'impose un preferredSize aux autres. Que dois-je faire pour régler le problème?
Merci d'avance!
Johan.
A voir également:
- Jpanel pack
- Driver pack - Télécharger - Divers Utilitaires
- Pack office pas cher - Guide
- Pack office 2019 gratuit - Télécharger - Traitement de texte
- K lite codec pack full - Télécharger - Conversion & Codecs
- Pack office gratuit - Guide
3 réponses
Salut j'avoue je ne comprends pas bien ta question mais je vais essayer de t'aider.
Je ne sais pas si tu connais la class javax.swing.JLayeredPane;
mais cette class fonctionne exactement comme un JPanel donc le mieux pour toi c'est créer plusieurs JPanel mais mais utiliser cette class JLayeredPane comme ton panneau principal.
Les avantages que donnent cette class c'est qu'elle te permet de superposer des panneaux des Label en les posant sur des couches en definissant meme la position que tu souhaites les voir.
Je te donne un petit exemple:
JLayeredPane lp;
JPanel panel;
lp=new JLayeredPane();
lp.setPreferredSize(new Dimension(800,600));
panel=new JPanel();//à completer selon besoin
panel.setBounds(100,50,200,200);//ceci positionne ton panneau de longueur 200*200 à la position (x,y)=(100,50)
lp.add(label,new Integer(0));//Ici on met le panel sur la couche 0 si on veux superposer avec un autre panel il suffit de faire
lp.add(panel1,new Integer(1));
et un petit getContentPane().add(lp); pour ajouter ton Layer.
Bon caourage si tu arrives pas fais moi signe.
getContentPane.add(lp);
Je ne sais pas si tu connais la class javax.swing.JLayeredPane;
mais cette class fonctionne exactement comme un JPanel donc le mieux pour toi c'est créer plusieurs JPanel mais mais utiliser cette class JLayeredPane comme ton panneau principal.
Les avantages que donnent cette class c'est qu'elle te permet de superposer des panneaux des Label en les posant sur des couches en definissant meme la position que tu souhaites les voir.
Je te donne un petit exemple:
JLayeredPane lp;
JPanel panel;
lp=new JLayeredPane();
lp.setPreferredSize(new Dimension(800,600));
panel=new JPanel();//à completer selon besoin
panel.setBounds(100,50,200,200);//ceci positionne ton panneau de longueur 200*200 à la position (x,y)=(100,50)
lp.add(label,new Integer(0));//Ici on met le panel sur la couche 0 si on veux superposer avec un autre panel il suffit de faire
lp.add(panel1,new Integer(1));
et un petit getContentPane().add(lp); pour ajouter ton Layer.
Bon caourage si tu arrives pas fais moi signe.
getContentPane.add(lp);
Salut ray-J, je me suis un peu mal exprimé en effet... Mais ta solution a résolu mon problème et je t'en remercie!
@+
Johan.
@+
Johan.