Вот как я это решил.Важной частью является
gbc.anchor = GridBagConstraints.WEST;
Вышеуказанное вызывается сразу после указания нужной ячейки макета и непосредственно перед добавлением компонента на панель.
GridBagConstraints anchor
Это поле используется, когда компонент меньше своей области отображения.Он определяет, где в области отображения разместить компонент....
Ниже в основном показано, как я это реализовал.
public class ControlPanel extends JPanel{...
ControlPanel(){
this.setLayout(new GridBagLayout());
//create components
...
GridBagConstraints gbc = new GridBagConstraints();
//space components out a little
gbc.insets = new Insets(5,5,5,5);
gbc.gridx = 0;
gbc.gridy = 0;
this.add(button_btn,gbc);
gbc.gridx = 1;
gbc.gridy = 0;
this.add(spinner1_pnl,gbc);
gbc.gridx = 2;
gbc.gridy = 0;
this.add(spinner2_pnl,gbc);
gbc.gridx = 3;
gbc.gridy = 0;
this.add(checkbox1_chk,gbc);
gbc.gridx = 4;
gbc.gridy = 0;
this.add(checkbox2_chk,gbc);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.gridwidth = 3; //span 3 columns
gbc.anchor = GridBagConstraints.WEST;
this.add(results_lbl,gbc);
}
}
В этом случае я ставлю метку ниже некоторых других компонентов, но самое главное, что метка оставлена (запад) выровнен внутри своей клетки.