[JAVA] JPanel et pack()
Résolu
Johan
-
silam -
silam -
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
- Pack office pas cher - Guide
- Driver pack - Télécharger - Divers Utilitaires
- Pack office 2019 gratuit - Télécharger - Traitement de texte
- Pack digital skyrock - Forum Consommation & Internet
- K lite codec pack full - Télécharger - Conversion & Codecs
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);