Так что мне удалось разбить всю часть выше на мою первую JPanel, которая расположена на СЕВЕР.
Затем, JPanel с кнопкой я сделал то же самое, чтобы быть расположенным SOUTH.
Итак, прокрученная JLabel теперь находится в ЦЕНТРЕ, что позволяет ему быть гибким.
JPanel mainPanel1 = new JPanel(new GridLayout(6,1));
mainPanel1.add(titleLabel);
mainPanel1.add(participantPanel);
mainPanel1.add(swimPanel);
mainPanel1.add(ridePanel);
mainPanel1.add(runPanel);
mainPanel1.add(categoriesPanel);
JPanel mainPanel2 = new JPanel(new GridLayout(1,1));
mainPanel2.add(listPanel);
JPanel mainPanel3 = new JPanel(new GridLayout(1,1));
mainPanel3.add(buttonsPanel);
this.getContentPane().add(mainPanel1, BorderLayout.NORTH);
this.getContentPane().add(mainPanel2, BorderLayout.CENTER);
this.getContentPane().add(mainPanel3, BorderLayout.SOUTH);
Вы пытаетесь сделать размеры компонентов, удерживаемых GridLayout, отличными друг от друга? GridLayout не позволяет этого. Пожалуйста, уточните свой вопрос. Пожалуйста, покажите код и/или изображения. –
'GridLayout' не самый лучший выбор, но также помните, что компонент предоставляет подсказки по размеру API-интерфейса менеджера компоновки через' getPreferred/Minimum/MaximumSize' – MadProgrammer
[здесь] (http://stackoverflow.com/questions/4699892/ how-to-set-the-component-size-with-gridlayout-is-there-a-better-way) – Dando18