Я пытаюсь создать простой интерфейс gui. Рамка состоит из главной панели, которая содержит еще четыре панели "Детали персонала", "Детали задания" "Фото" и кнопки. Вывод выглядит следующим образом:
Я использовал gridLayout для всех панелей, кроме "панели кнопок", которая имеет borderLayout.
Теперь я хочу уменьшить высоту нижних двух панелей, чтобы у него не было лишнего места. Как мне это сделать?
Вот код для панели "фото" и панели "кнопка". Обе панели теперь имеют компоновку потока.
photoPanel.setPreferredSize(new Dimension(300,70));
photoPanel.add(browsebx);
photoPanel.add(browseBtn);
btnPanel.setPreferredSize(new Dimension(300,70));
btnPanel.add(addBtn);
btnPanel.add(editBtn);
btnPanel.add(deleteBtn);
btnPanel.add(cancelBtn);
На вашей основной панели используется GridLayout
, что означает, что все четыре панели будут одинакового размера. Не используйте GridLayout.
Вместо этого, возможно, вы можете использовать GridBagLayout
. Это позволяет добавлять каждую панель в определенную сетку, но каждая панель будет поддерживать свой предпочтительный размер, определяемый менеджером компоновки, используемым на каждой из отдельных панелей.
Прочтите раздел из руководства Swing о том, как использовать GridBagLayout для получения дополнительной информации и примеров.
Помните, что каждая из 4 дочерних панелей может при необходимости использовать другой менеджер компоновки. Например, вы, вероятно, захотите использовать FlowLayout
для панели кнопок.
вы можете использовать это.
jPanel.setPreferredSize(new Dimension(x, y));
jPanel.setMaximumSize(new Dimension(x, y));
jPanel.setMinimumSize(new Dimension(x, y));