По умолчанию GridBagLayout
будет центрировать компоненты по вертикали (и по горизонтали) на панели, если только один из компонентов не имеет значение weighty
, не равное 0.
Это даст дополнительное пространство панели для этого компонента. Прочитайте раздел из учебника по Swing на Как использовать GridBagLayout для получения дополнительной информации.
Однако я хотел бы предложить лучшее решение - использовать вертикальную BoxLayout, и тогда вы можете просто добавить «клей» в конец, чтобы занять дополнительное пространство.
Что-то вроде:
Box box = Box.createVerticalBox();
box.add( card1 );
box.add( card2 );
...
box.add( Box.createVerticalGlue() );
Другим вариантом может быть использование Схема перекрытия . Этот менеджер компоновки позволяет размещать компоненты друг над другом.