Bonjour,

alors, j'ai un petit problème (de compréhension surtout).

Mon code se compose comme suit :
- je crée un objet de type JFrame (contenant un JMenu)
- dans cette objet, je viens ajouter un objet de type Container
… Jusque la, tout va bien

- lors du click sur un bouton du JMenu, j'aimerais afficher un nouveau panel dans mon container, je fais donc un ActionListener sur mon bouton, et j'instancie un objet de type JPanel.

je crée donc cet objet, que je viens ajouter au container (après un "removeAll").

J'ai donc mon JFrame, avec dedans mon Container, et je viens ajouter un panel dans ce container.
Dans ce dit panel, je place différents composants que j'aimerais ranger grace à GridBagLayout.

Ce panel est un objet de type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
FenetreAjoutCom Panneau = new FenetreAjoutCom();
cont.add(Panneau);
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public class FenetreAjoutCom extends JPanel{
this.setLayout(new GridBagLayout());
JTextField numTable = new JTextField(2);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 2;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.PAGE_START;
this.add(numTable,gbc);
}
et à l'affichage, mon JTextField reste en plein milieu de mon écran (que ce soit verticalement ou horizontalement).

Or si maintenant je fais ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
public class FenetreAjoutCom extends JPanel{
JPanel panel = new JPanel(new GridBagLayout());
JTextField numTable = new JTextField(2);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 2;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.PAGE_START;
panel.add(numTable,gbc);
this.add(panel);
}
ca fonctionne
(donc mon JTextField s'aligne bien en haut au milieu)

je ne comprends pas du tout pourquoi cela ne fonctionne pas lorsque j'applique mon GridBagLayout sur ma classe de type JPanel

Si vous pouviez m'éclairer

merci !!