Vous ne semblez pas utiliser complètement les GridBagConstraints. Au lieu de taper group.setAlignmentX (JComponent.LEFT_ALIGNMENT) (que je n'ai jamais l'air de travailler pour quelque chose haha), utilisez simplement le fichier contraints.anchor = GridBagConstraints.WEST.
Beaucoup de gens n'aiment pas GridBagLayout mais je trouve qu'il est facile de travailler avec une fois que vous comprenez comment cela fonctionne. La chose la plus difficile à gérer est le poids de l'objet dans la grille. Mais spécifiquement avec cette question, vous voulez juste ancrer un composant à côté des constantes GridBagConstraint et vous fier à la classe de contraintes pour contrôler où vont les choses.
EDIT: ok, alors donnez leur poids. (Bien que cela ne peut pas résoudre le problème hehe)
constraints.weightx = 1d;
Ce qui se passe est que tout a le même poids il est espaçant uniformément je crois. Si vous voulez 'cramper' les éléments, vous pouvez ajouter un JPanel vide après le dernier composant et définir fill = REMAINDER et avoir ce poids de 1 et les autres composants de poids 0. Le type de poids détermine combien un composant peut pousser "autour d'un autre.
GridBagConstraints gbc = new GridBagConstraints();
JPanel p = new JPanel(new GridBagLayout());
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
p.add(new JLabel("A"), gbc);
gbc.gridx++;
p.add(new JLabel("B"), gbc);
gbc.gridx++;
gbc.weightx = 1d;
gbc.fill = GridBagConstraints.REMAINDER;
p.add(new JPanel(), gbc);
gbc.fill = GridBagConstraints.NONE;
gbc.weightx = 0d;
.... continue on filling stuff...
Ceci est une façon d'y faire face. Jouer un peu avec ça jusqu'à ce que vous ayez une idée de comment cela fonctionne est bon.
Nous aurions besoin de voir plus sur le panneau externe je pense. Mais si mes soupçons sont corrects, définir des bordures sur les composants vous aidera à voir où se trouve votre erreur de mise en page. (Astuce: le composant d'état n'est probablement pas en expansion pour remplir sa 'cellule' car il n'a pas de poidsx.) – PSpeed