Centrer un JPanel dans un JPanel

Fermé
Qoodsy - 23 févr. 2016 à 18:48
 Utilisateur anonyme - 24 févr. 2016 à 21:28
Bonjour à tous,

Je souhaite centrer et dimensionner un JPanel (panmid) dans un autre sans avoir à créer et dimensionner les JPanel intermédiaires (pantop, panbot, panleft, panright).

Voici mon code :


// la fenêtre (this) fait 800*600

pan = new JPanel();
pan.setLayout(new BorderLayout());
pan.setBackground(Color.white);
this.add(pan);

pantop = new JPanel();
pantop.setPreferredSize(new Dimension(800, 50));
pan.add(pantop, BorderLayout.NORTH);

panmid = new JPanel();
pan.add(panmid, BorderLayout.CENTER);

panleft = new JPanel();
panleft.setPreferredSize(new Dimension(50, 500));
pan.add(panleft, BorderLayout.WEST);

panright = new JPanel();
panright.setPreferredSize(new Dimension(50, 500));
pan.add(panright, BorderLayout.EAST);

panbot = new JPanel();
panbot.setPreferredSize(new Dimension(800, 50));
pan.add(panbot, BorderLayout.SOUTH);

this.setContentPane(pan);

1 réponse

Utilisateur anonyme
23 févr. 2016 à 21:39
Tu peux :

1. Supprimer le layout (setlayout(null) ) et placer manuellement l'objet via des coordonnées

2. Utiliser le layout GridLayout(3,3) et utiliser 8 JLabel avec ton JPanel au centre (position 5/9)
0
Merci de ta réponse Jason :)

Alors la première solution, je ne peux l'utiliser étant donné que c'est une application responsive que je crée.
Pour la seconde, j'éprouve le même problème que ma solution. Je dois donc systématiquement créer d'autres composants pour placer le principal ?
0
Utilisateur anonyme
24 févr. 2016 à 21:28
Y'a les méthodes setHorizontalAlignement et setVerticalAlignement mais ça ne marche que sur certains composants ...
0