Я новичок в Java.
Я попробовал GridBagLayout, сдался, затем попробовал BoxLayout, затем сдался, затем сделал свой собственный Custom Layout , который работал. С GridBag и Box я высказал свое предположение, и движки Layout решили сделать что-то другое, без какого-либо очевидного способа их отладки.
С моим собственным макетом я мог распечатать координаты, ширину и высоту, чтобы выяснить, где это происходит не так. Это немного математично, но у вас есть все возможности Java, а не ограниченный словарный запас одного из встроенных менеджеров компоновки.
Конечно, это было только для домашнего проекта, вам никогда не разрешат сделать это на работе.