Диспетчер компоновки GridBagLayout Java

Диспетчер компоновки GridBagLayout JavaGridBagLayout — прародитель всех диспетчеров компоновки. Его можно рассматривать как диспетчер GridLayout бе ограничений, то есть его строки и столбцы могут иметь переменный размер. Для того чтобы разместить более крупный компонент, который не помещается в одну ячейку, несколько смежных ячеек можно объединить в одну.

Многие текстовые процессоры, а также HTML, предоставляют такие же возможности при редактировании таблиц: заполнение начинается с обычной сетки, а при необходимости некоторые ее ячейки объединяются в одну. Недавно мы рассматривали диспетчер компоновки BorderLayout.

Компоненты не обязаны заполнять всю ячейку, показанное на рис.2. Оно содержит перечисленные ниже компоненты.

  • Для выпадающих списка, предназначенных для выбора начертания и размера шрифта.
  • Метки указанных выпадающих списков.
  • Два флажка опций для выбора полужирного шрифта и курсива.
  • Текстовая область для отображения строки-примера.

Диспетчер компоновки GridBagLayout JavaРис.2. Диалоговое окно, предназначенное для выбора шрифта.

Диспетчер компоновки GridBagLayout JavaРис.3. Сетка диалогового окна, используемая при разработке

Теперь разделим диалоговое окно на ячейки так, как показано на рис.3. Строки и столбцы не обязаны иметь одинаковый размер). Как видим, каждый флажок занимает два столбца, а текстовая область — четыре строки.

Чтобы описать эту схему в терминах диспетчера GridBagLayout, нужно выполнить ряд действий.

  1. Создать объект GridBagLayout. Конструктору не следует знать, сколько строк и столбцов содержит сетка. Позднее он попытается угадать эти параметры по информации, которую он получит от вас.
  2. Связать объект GridLayout с контейнером.
  3. Для каждого компонента создать объект GridBagConstraints. Этот объект будет задавать расположение компонентов.
  4. Добавить компонент с ограничениями с помощью следующего вызова: add(Component, constraints);

Ниже приведен соответствующий фрагмент кода. Ограничения будут рассмотрены в дальнейшим в рубрике «Java для начинающих«.

Главная задача заключается в том, как задать состояние объекта класса GridBagConstraints.

Хотите знать все про остеохондроз? Здесь, на osteohondroz.org собрана самая полезная информация.