Вместо использования GridBagLayout
рассмотрите возможность использования MigLayout .
. Вы также можете использовать макет null
, который устанавливает ширину и высоту каждого компонента как ширину или высоту, деленную налибо количество строк или столбцов (в зависимости от того, как вы хотите это сделать), и установите начальные значения x
и y
в соответствии с этим:
(total width % number of columns) / 2
и другие просто
initialX + cellWidth * (col - 1)
и
initialY + cellWidth * (row - 1)
.
Вставьте этот код в метод componentResized(ComponentEvent e){...}
вашего среднего JPanel
ComponentListener
и циклически переходите по клеткам (панелям), устанавливая их границы.Это может быть медленный / ручной способ, но вы будете иметь полный контроль над тем, как именно вы хотите, чтобы они изменили размер.