Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

GridBagLayout

GridBagLayout расставляет компоненты наиболее гибко, позволяя задавать размеры и положение каждого компонента. Но он оказался очень сложным и применяется редко.

Конструктор:

GridBagLayout() – задает менежджер размещения (без аргументов).

 

Менеджер класса GridBagLayout, в отличие от других менеджеров размещения, не содержит правил размещения. Он играет только организующую роль. Ему передаются ссылка на компонент и правила расположения этого компонента, а сам он помещает данный компонент по указанным правилам в контейнер. Все правила размещения компонентов задаются в объекте другого класса, GridBagConstraints.

Менеджер размещает компоненты в таблице с неопределенным заранее числом строк и столбцов. Один компонент может занимать несколько ячеек этой таблицы, заполнять ячейку целиком, располагаться в ее центре, углу или прижиматься к краю ячейки.

Конструкторы:

· GridBagConstraints();· GridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady) - содержит одиннадцать полей, определяющих размеры компонентов, их положение в контейнере и взаимное положение, и несколько констант - значений некоторых полей. Они перечислены следующей таблице.
Поле Значение
gridx Номер ячейки в строке. Самая левая ячейка имеет номер 0. По умолчанию константа RELATIVE, что означает: следующая по порядку.
gridy Номер ячейки в столбце. Самая верхняя ячейка имеет номер 0. По умолчанию константа RELATIVE, что означает: следующая по порядку.
gridwidth Количество ячеек в строке, занимаемых компонентом. Целое типа int, по умолчанию 1. Константа REMAINDER означает, что компонент займет остаток строки, RELATIVE — будет следующим в строке по порядку.
gridheight Количество ячеек в колонке, занимаемых компонентом. Целое типа int, по умолчанию 1. Константа REMAINDER означает, что компонент займет остаток колонки, RELATIVE — будет следующим по порядку в колонке.
weightx, weighty Пропорциональное растяжение компонентов при изменении размера контейнера; по умолчанию 0,0.
anchor Направление размещения компонента в контейнере. Константы: CENTER, NORTH, EAST, NORTHEAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, и NORTHWEST; no умолчанию CENTER.
fill Растяжение компонента для заполнения ячейки. Константы: NONE, HORIZONTAL, VERTICAL, BOTH; ПО умолчанию NONE.
insets Поля в контейнере. Объект класса insets; по умолчанию объект с нулями.
ipadx, ipady Горизонтальные и вертикальные поля вокруг компонентов; по умолчанию 0.

Как правило, объект класса GridBagConstraints создается конструктором по умолчанию, затем значения нужных полей меняются простым присваиванием новых значений, например:

GridBagConstraints gbc = new GridBagConstraints();

gbc.weightx = 1.0;

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbc.gridheight = 2;

После создания объекта gbc класса GridBagConstraints менеджеру размещения указывается, что при помещении компонента comp в контейнер следует применять правила, занесенные в объект gbc. Для этого применяется метод add(Component comp, GridBagConstraints gbc);

Методы:

· public void addLayoutComponent(Component comp, Object constraints) – добавляет в контейнер компонент comp, здесь аргумент constraints должен иметь тип String и содержать имя компонента;· public GridBagConstraints getConstraints(Component comp) – возвращает ограничения для указанного компонента;· public void setConstraints(Component comp, GridBagConstraints constraints) – установливает ограничения для указанного компонента в данной схеме расположения;· public Point location(int x, int y) – определяет какая ячейка в сетке схемы содержит точку с координатами (х,у). Каждая ячейка идентифицирована индексом колонки (от 0 до количество колонок-1) и индексом строки (от 0 до количество строк-1);· public float getLayoutAlignmentX(Container parent) – возвращает значение выравнивания вдоль оси Х. Принимает значение от 0 до 1. Если компонент прижат к началу координат, значение равно 0, находится на правой границе – 1, находится посередине – 0.5;· public float getLayoutAlignmentY(Container parent) – возвращает значение выравнивания вдоль оси Х. Принимает значение от 0 до 1. Если компонент прижат к началу координат, значение равно 0, находится на правой границе – 1, находится посередине – 0.5;· public Dimension minimumLayoutSize(Container target) - определяет минимальный размер окна контейнера, необходимого для размещения всех компонент;· public String toString() - возвращает строку названия метода компоновки;· public float setLayoutAlignmentX(Container parent) – устанавливает выравнивание вдоль оси Х. Принимает значение от 0 до 1; · public float setLayoutAlignmentY(Container parent) – устанавливает выравнивание вдоль оси Х. Принимает значение от 0 до 1;· public void show(Container parent, String name) – показывает нужный компонент с именем name.

 

Итак, схема применения менеджера GridBagLayout такова:

GridBagLayout gbl = new GridBagLayout(); // Создаем менеджер

setLayout(gbl); // Устанавливаем его в контейнер

// Задаем правила размещения по умолчанию

GridBagConstraints с = new GridBagConstraints();

Button b2 = new Button(); // Создаем компонент

c.gridwidth =2; // Меняем правила размещения

add(bl, с); // Помещаем компонент b2 в контейнер по указанным правилам размещения с

Button Ь2 = new Button(); // Создаем следующий компонент

c.gridwidth = 1; // Меняем правила для его размещения

add(b2, с); // Помещаем в контейнер и т.д.

В документации к классу GridBagLayout приведен пример использования этого менеджера размещения.


Дата добавления: 2015-10-29; просмотров: 133 | Нарушение авторских прав


Читайте в этой же книге: Определение методов | Перегрузка конструктора | Абстрактные методы | Иерархия классов-исключений | Модель обработки исключений | Концепции AWT | Компоненты AWT | TextComponent | CheckboxGroup | Классы элементов меню |
<== предыдущая страница | следующая страница ==>
Абсолютное позиционирование| Простое Swing приложение

mybiblioteka.su - 2015-2024 год. (0.007 сек.)