Динамически изменять размер JPanels по ширине окна

#java #swing #user-interface #jpanel

#java #swing #пользовательский интерфейс #jpanel

Вопрос:

У меня есть произвольное количество JPanels, создаваемых на основе пользовательского ввода (например, 1-8 панелей). Прямо сейчас я помещаю все панели в большую панель, используя FlowLayout, а затем добавляю эту панель в мое главное окно, которое использует BoxLayout. Я хочу, чтобы панели соответствовали ширине главного окна, но прямо сейчас они очень маленькие. Должен ли я использовать другой макет или есть способ сделать это?

Ответ №1:

Вы должны выбрать GridLayout или GridBagLayout .

Ответ №2:

Да, вам следует использовать другой менеджер компоновки. Используйте BorderLayout (руководство здесь), которое растягивает все содержимое так, чтобы оно соответствовало размеру контейнера.

Кроме того, BorderLayout не допускает более одного компонента в каждой области, поэтому вам понадобится еще одна подпанель для размещения ваших панелей. Не используйте FlowLayout для этой подпанели, так как она не будет иметь того поведения, которое вы ищете.