вы не используете GridBagConstraints. Вместо того, чтобы вводить group.setAlignmentX (JComponent.LEFT_ALIGNMENT) (что мне никогда не удается заставить работать, ха-ха), просто используйте contraints.anchor = GridBagConstraints.WEST.
Многим людям не нравится GridBagLayout, но мне будет легко с ним работать, когда вы поймете, как он работает. Самое сложное, с чем приходится иметь дело - это вес объекта в сетке.
Но именно с этим вопросом вы просто хотите привязать компонент к стороне с константами GridBagConstraint и полагаться на класс ограничений, чтобы контролировать, куда идут вещи.
РЕДАКТИРОВАТЬ: хорошо, а затем дать им вес. (хотя это может не решить проблему хе-хе)
constraints.weightx = 1d;
Что происходит, так это то, что все имеют одинаковый вес, поэтому я считаю, что они равномерно распределены. Если вы хотите «втиснуть» предметы в элементы, вы можете добавить пустой JPanel после последнего компонента и установить для fill = REMAINDER значение 1, а других компонентов - значение 0. 'вокруг другого.
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...
Это один из способов справиться с этим. Немного поиграть с ним, пока вы не почувствуете, как это работает, хорошо.