Я предлагаю вам прочитать учебник для GridBagLayout, поскольку он является «из коробки» самым продвинутым менеджером компоновки и делает другие устаревшими. По этим причинам стоит учиться. Это делает все простым, если вы думаете об этом как о сетке, и все, что вам нужно, - это координаты x и y, которые вы пропустили в своем коде. Вы были почти там:)
Смешивать менеджеры компоновки, как правило, очень плохая идея, поскольку все они работают немного по-разному, когда дело доходит до заполнения контейнеров дополнительным пространством.
@ camickr
На основании моего комментария люди должны использовать GridBagLayout, поскольку он является наиболее гибким и может использоваться в любой ситуации. Наличие только одного должно привести к простой и ремонтопригодной. Я также нахожу это очень легким для чтения, так как он логически сопоставлен. Ограничения изменяются только в том случае, если вы используете один объект ограничений для всех компонентов, что, очевидно, является плохой идеей.