В документации по библиотеке AWT рекомендуется не задавать абсолютные значения параметров gridx и gridy, а вместо этого использовать константу GridBagConstraints.RELATIVE. Затем нужно, как обычно, слева направо строка за строкой включать компоненты в контейнер, управляемый диспетчером компоновки GridBagLayout. Количество строк и столбцов, занятых ячейкой, нужно задавать с помощью полей gridheight и gridwidth. Исключение составляет компонент, занимающий последнюю строку или столбец. Для него задается не числовое значение, а специальная константа GridBagConstraints.REMAINDER. Это позволяет диспетчеру компоновки распознавать последние компоненты.Данная схема вполне работоспособна. Однако кажется странным сначала скрывать от диспетчера компоновки информацию о фактическом расположении компонентов, а затем полагаться на то, что он сам угадает правильные параметры.
У читателя может сложиться впечатление, что пользоваться диспетчером GridBagLayout очень сложно. Однако, следуя приведенным ниже рекомендациям, удается размещать элементы, не затрачивая значительных усилий.
- Изобразите схему расположения компонентов на бумаге.
- Определите такую сетку, чтобы каждый компонент умещался в ячейке, а большие компоненты могли занимать несколько ячеек.
- Пометьте строки и столбцы вашей сетки числами 0, 1, 2, 3,… Теперь можно определять значение параметров gridx, gridy, gridwidth и gridheight.
- Для каждого компонента решите, нужно ли, чтобы он заполнял ячейку в горизонтальном или вертикальном направлении? Если нет, как его выровнять внутри ячейки? Это определяют параметры fill и anchor.
- Установите вес равным 100. Однако если вы хотите, чтобы конкретная строка или столбец всегда сохраняли свой первоначальный размер, задайте параметры weightx или weighty всех компонентов, находящихся в этой строке или столбце, равными 0.
- Напишите программу. Тщательно проверьте установки класса GridBagConstraints. Однако неверное ограничение может разрушить всю компоновку.
- Скомпилируйте программу и запустите ее на выполнение.
Некоторые инструменты для построения графических интерфейсов включают в себя инструменты для визуального указания ограничений.
Защитите вашу переписку, звонки и файлы! VIPole защита связи на самом высоком уровне. Программа VIPole — защищенный онлайн мессенджер для корпоративного и личного использования.