Spec-Zone.ru › OpenJDK 24

Класс GridBagLayout

java.lang.Object
java.awt.GridBagLayout
Все реализованные интерфейсы:
LayoutManager, LayoutManager2, Serializable
public class GridBagLayout extends Object implements LayoutManager2, Serializable
Класс GridBagLayout — это гибкий менеджер компоновки, который выравнивает компоненты по вертикали, горизонтали или вдоль их базовой линии без требования, чтобы компоненты были одинакового размера. Каждый объект GridBagLayout поддерживает динамическую прямоугольную сетку ячеек, при этом каждый компонент занимает одну или несколько ячеек, называемых его областью отображения.

Каждый компонент, управляемый GridBagLayout, связан с экземпляром GridBagConstraints. Объект ограничений определяет, где область отображения компонента должна располагаться в сетке и как компонент должен быть расположен внутри своей области отображения. Помимо объекта ограничений, GridBagLayout также учитывает минимальные и предпочтительные размеры каждого компонента для определения размера компонента.

Общее направление сетки зависит от свойства контейнера ComponentOrientation. Для горизонтальной ориентации слева направо координаты сетки (0,0) находятся в верхнем левом углу контейнера, при этом x увеличивается вправо, а y — вниз. Для горизонтальной ориентации справа налево координаты сетки (0,0) находятся в верхнем правом углу контейнера, при этом x увеличивается влево, а y — вниз.

Для эффективного использования компоновки сетки необходимо настроить один или несколько объектов GridBagConstraints, связанных с её компонентами. Объект GridBagConstraints настраивается путём установки одного или нескольких его переменных экземпляра:

GridBagConstraints.gridx, GridBagConstraints.gridy
Определяет ячейку, содержащую ведущий угол области отображения компонента, где ячейка в начале сетки имеет адрес gridx = 0, gridy = 0. При горизонтальной компоновке слева направо ведущий угол компонента — это его верхний левый угол. При горизонтальной компоновке справа налево ведущий угол компонента — это его верхний правый угол. Используйте значение GridBagConstraints.RELATIVE (значение по умолчанию) для указания, что компонент должен быть размещён непосредственно за (по оси x для gridx или по оси y для gridy) компонентом, добавленным в контейнер до добавления этого компонента.
GridBagConstraints.gridwidth, GridBagConstraints.gridheight
Определяет количество ячеек в строке (для gridwidth) или столбце (для gridheight) в области отображения компонента. Значение по умолчанию равно 1. Используйте GridBagConstraints.REMAINDER для указания, что область отображения компонента будет от gridx до последней ячейки в строке (для gridwidth) или от gridy до последней ячейки в столбце (для gridheight). Используйте GridBagConstraints.RELATIVE для указания, что область отображения компонента будет от gridx до предпоследней ячейки в строке (для gridwidth) или от gridy до предпоследней ячейки в столбце (для gridheight).
GridBagConstraints.fill
Используется, когда область отображения компонента больше, чем запрашиваемый размер компонента, для определения, следует ли (и как) изменять размер компонента. Возможные значения: GridBagConstraints.NONE (значение по умолчанию), GridBagConstraints.HORIZONTAL (изменить ширину компонента, чтобы заполнить его область отображения по горизонтали, но не изменять высоту), GridBagConstraints.VERTICAL (изменить высоту компонента, чтобы заполнить его область отображения по вертикали, но не изменять ширину) и GridBagConstraints.BOTH (заполнить область отображения компонента полностью).
GridBagConstraints.ipadx, GridBagConstraints.ipady
Определяет внутреннее отступы компонента в компоновке, сколько добавить к минимальному размеру компонента. Ширина компонента будет не менее его минимальной ширины плюс ipadx пикселей. Аналогично, высота компонента будет не менее минимальной высоты плюс ipady пикселей.
GridBagConstraints.insets
Определяет внешние отступы компонента, минимальное расстояние между компонентом и краями его области отображения.
GridBagConstraints.anchor
Определяет, где компонент должен быть размещён в своей области отображения. Существует три вида возможных значений: абсолютные, относительные к ориентации и относительные к базовой линии. Значения, относительные к ориентации, интерпретируются относительно свойства ComponentOrientation контейнера, а абсолютные — нет. Значения, относительные к базовой линии, рассчитываются относительно базовой линии. Допустимые значения:
  • Абсолютные значения:
    • GridBagConstraints.NORTH
    • GridBagConstraints.SOUTH
    • GridBagConstraints.WEST
    • GridBagConstraints.EAST
    • GridBagConstraints.NORTHWEST
    • GridBagConstraints.NORTHEAST
    • GridBagConstraints.SOUTHWEST
    • GridBagConstraints.SOUTHEAST
    • GridBagConstraints.CENTER (значение по умолчанию)
  • Относительные к ориентации значения:
    • GridBagConstraints.PAGE_START
    • GridBagConstraints.PAGE_END
    • GridBagConstraints.LINE_START
    • GridBagConstraints.LINE_END
    • GridBagConstraints.FIRST_LINE_START
    • GridBagConstraints.FIRST_LINE_END
    • GridBagConstraints.LAST_LINE_START
    • GridBagConstraints.LAST_LINE_END
  • Относительные к базовой линии значения:
    • GridBagConstraints.BASELINE
    • GridBagConstraints.BASELINE_LEADING
    • GridBagConstraints.BASELINE_TRAILING
    • GridBagConstraints.ABOVE_BASELINE
    • GridBagConstraints.ABOVE_BASELINE_LEADING
    • GridBagConstraints.ABOVE_BASELINE_TRAILING
    • GridBagConstraints.BELOW_BASELINE
    • GridBagConstraints.BELOW_BASELINE_LEADING
    • GridBagConstraints.BELOW_BASELINE_TRAILING
GridBagConstraints.weightx, GridBagConstraints.weighty
Используются для определения распределения пространства, что важно для указания поведения при изменении размера. Если не указать вес хотя бы для одного компонента в строке (weightx) и столбце (weighty), все компоненты сгруппируются в центре контейнера. Это происходит потому, что когда вес равен нулю (значение по умолчанию), объект GridBagLayout помещает любое дополнительное пространство между своей сеткой ячеек и краями контейнера.

У каждой строки может быть базовая линия; базовая линия определяется компонентами в этой строке, имеющими допустимую базовую линию и выровненными вдоль базовой линии (значение якоря компонента равно одному из BASELINE, BASELINE_LEADING или BASELINE_TRAILING). Если ни один из компонентов в строке не имеет допустимой базовой линии, строка не имеет базовой линии.

Если компонент занимает несколько строк, он выравнивается либо по базовой линии начальной строки (если поведение изменения размера базовой линии равно CONSTANT_ASCENT), либо по базовой линии конечной строки (если поведение изменения размера базовой линии равно CONSTANT_DESCENT). Строка, к которой выровнен компонент, называется преобладающей строкой.

На рисунке ниже показана компоновка базовой линии, включая компонент, занимающий несколько строк:

The following text describes this graphic (Figure 1).

Эта компоновка состоит из трех компонентов:
  • Панель, начинающаяся в строке 0 и заканчивающаяся в строке 1. Панель имеет поведение изменения размера базовой линии CONSTANT_DESCENT и якорь BASELINE. Поскольку поведение изменения размера базовой линии равно CONSTANT_DESCENT, преобладающей строкой для панели является строка 1.
  • Две кнопки, каждая из которых имеет поведение изменения размера базовой линии CENTER_OFFSET и якорь BASELINE.
Поскольку вторая кнопка и панель разделяют одну и ту же преобладающую строку, они обе выровнены вдоль своей базовой линии.

Компоненты, размещаемые с помощью одного из значений, относящихся к базовой линии, изменяют размер по-другому, чем при использовании абсолютного или относительного к ориентации значения. Способ изменения компонентов определяется способом изменения базовой линии преобладающей строки. Базовая линия закреплена в нижней части области отображения, если какие-либо компоненты с той же преобладающей строкой имеют поведение изменения размера базовой линии CONSTANT_DESCENT, в противном случае базовая линия закреплена в верхней части области отображения. Следующие правила определяют поведение изменения размера:

  • Изменяемые компоненты, расположенные выше базовой линии, могут увеличиваться только в высоту до базовой линии. Например, если базовая линия находится на уровне 100 и закреплена вверху, изменяемый компонент, расположенный выше базовой линии, никогда не может увеличиться более чем на 100 единиц.
  • Аналогично, изменяемые компоненты, расположенные ниже базовой линии, могут увеличиваться только до разницы между высотой области отображения и базовой линией.
  • Изменяемые компоненты, расположенные на базовой линии с поведением изменения размера базовой линии OTHER, изменяют размер только в том случае, если базовая линия в изменённом размере помещается в области отображения. Если базовая линия такова, что не помещается в области отображения, компонент не изменяет размер.
  • Компоненты, размещённые на базовой линии, у которых нет поведения изменения размера базовой линии OTHER, могут увеличиваться только в высоту до display height - baseline + baseline of component.
Если вы размещаете компонент вдоль базовой линии, но компонент не имеет допустимой базовой линии, он будет вертикально центрирован в своём пространстве. Аналогично, если вы разместили компонент относительно базовой линии, и ни один из компонентов в строке не имеет допустимой базовой линии, компонент центрируется по вертикали.

На следующих рисунках показано десять компонентов (все кнопки), управляемых компоновкой сетки. Рисунок 2 показывает компоновку для горизонтального контейнера слева направо, а Рисунок 3 — для горизонтального контейнера справа налево.

The preceding text describes this graphic (Figure 2).

Рисунок 2: Горизонтально, слева направо

The preceding text describes this graphic (Figure 3).

Рисунок 3: Горизонтально, справа налево


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

  • Кнопка1, Кнопка2, Кнопка3: weightx = 1.0
  • Кнопка4: weightx = 1.0, gridwidth = GridBagConstraints.REMAINDER
  • Кнопка5: gridwidth = GridBagConstraints.REMAINDER
  • Кнопка6: gridwidth = GridBagConstraints.RELATIVE
  • Кнопка7: gridwidth = GridBagConstraints.REMAINDER
  • Кнопка8: gridheight = 2, weighty = 1.0
  • Кнопка9, Кнопка 10: gridwidth = GridBagConstraints.REMAINDER

Вот код, который реализует пример, показанный выше:

 import java.awt.*;
 import java.util.*;
 import java.applet.Applet;

 public class GridBagEx1 extends Applet {

     protected void makebutton(String name,
                               GridBagLayout gridbag,
                               GridBagConstraints c) {
         Button button = new Button(name);
         gridbag.setConstraints(button, c);
         add(button);
     }

     public void init() {
         GridBagLayout gridbag = new GridBagLayout();
         GridBagConstraints c = new GridBagConstraints();

         setFont(new Font("SansSerif", Font.PLAIN, 14));
         setLayout(gridbag);

         c.fill = GridBagConstraints.BOTH;
         c.weightx = 1.0;
         makebutton("Button1", gridbag, c);
         makebutton("Button2", gridbag, c);
         makebutton("Button3", gridbag, c);

         c.gridwidth = GridBagConstraints.REMAINDER; //end row
         makebutton("Button4", gridbag, c);

         c.weightx = 0.0;                //reset to the default
         makebutton("Button5", gridbag, c); //another row

         c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
         makebutton("Button6", gridbag, c);

         c.gridwidth = GridBagConstraints.REMAINDER; //end row
         makebutton("Button7", gridbag, c);

         c.gridwidth = 1;                //reset to the default
         c.gridheight = 2;
         c.weighty = 1.0;
         makebutton("Button8", gridbag, c);

         c.weighty = 0.0;                //reset to the default
         c.gridwidth = GridBagConstraints.REMAINDER; //end row
         c.gridheight = 1;               //reset to the default
         makebutton("Button9", gridbag, c);
         makebutton("Button10", gridbag, c);

         setSize(300, 100);
     }

     public static void main(String args[]) {
         Frame f = new Frame("GridBag Layout Example");
         GridBagEx1 ex1 = new GridBagEx1();

         ex1.init();

         f.add("Center", ex1);
         f.pack();
         f.setSize(f.getPreferredSize());
         f.show();
     }
 }
 
Since:
1.0
See Also:
  • GridBagConstraints
  • GridBagLayoutInfo
  • ComponentOrientation
  • Форматированный вывод

Краткое описание полей

Модификатор и тип Поле Описание
double[] columnWeights
Это поле содержит переопределения весов столбцов.
int[] columnWidths
Это поле содержит переопределения минимальной ширины столбцов.
protected Hashtable<Component, GridBagConstraints> comptable
Эта хэш-таблица поддерживает связь между компонентом и его ограничениями GridBag.
protected GridBagConstraints defaultConstraints
Это поле содержит экземпляр ограничений GridBag, содержащий значения по умолчанию. Если у компонента нет связанных с ним ограничений GridBag, компонент получит копию defaultConstraints.
protected GridBagLayoutInfo layoutInfo
Это поле содержит информацию о макете для GridBag.
protected static final int MAXGRIDSIZE
Это поле больше не используется для резервирования массивов и сохранено для совместимости со старыми версиями.
protected static final int MINSIZE
Наименьшая сетка, которая может быть размещена с помощью макета Grid Bag.
protected static final int PREFERREDSIZE
Предпочтительный размер сетки, который может быть размещен с помощью макета Grid Bag.
int[] rowHeights
Это поле содержит переопределения минимальных высот строк.
double[] rowWeights
Это поле содержит переопределения весов строк.

Краткое описание конструкторов

Конструктор Описание
GridBagLayout()
Создает менеджер макета Grid Bag.

Краткое описание методов

Модификатор и тип Метод Описание
void addLayoutComponent(Component comp, Object constraints)
Добавляет указанный компонент в макет, используя указанный объект constraints.
void addLayoutComponent(String name, Component comp)
Не оказывает никакого влияния, так как этот менеджер макета не использует строку для каждого компонента.
protected void adjustForGravity(GridBagConstraints constraints, Rectangle r)
Корректирует поля x, y, width и height до правильных значений в зависимости от геометрии ограничений и отступов.
protected void AdjustForGravity(GridBagConstraints constraints, Rectangle r)
Корректирует поля x, y, width и height до правильных значений в зависимости от геометрии ограничений и отступов.
protected void arrangeGrid(Container parent)
Размещает сетку.
protected void ArrangeGrid(Container parent)
Этот метод устарел и предоставлен только для обеспечения обратной совместимости; новый код должен вызывать arrangeGrid вместо этого.
GridBagConstraints getConstraints(Component comp)
Получает ограничения для указанного компонента.
float getLayoutAlignmentX(Container parent)
Возвращает выравнивание по оси x.
float getLayoutAlignmentY(Container parent)
Возвращает выравнивание по оси y.
int[][] getLayoutDimensions()
Определяет ширину столбцов и высоту строк для сетки макета.
protected GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag)
Заполняет экземпляр GridBagLayoutInfo для текущего набора управляемых дочерних элементов.
protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)
Этот метод устарел и предоставлен только для обеспечения обратной совместимости; новый код должен вызывать getLayoutInfo вместо этого.
Point getLayoutOrigin()
Определяет начало области макета в пространстве координат графики целевого контейнера.
double[][] getLayoutWeights()
Определяет веса столбцов и строк сетки макета.
protected Dimension getMinSize(Container parent, GridBagLayoutInfo info)
Вычисляет минимальный размер родительского элемента на основе информации из getLayoutInfo.
protected Dimension GetMinSize(Container parent, GridBagLayoutInfo info)
Этот метод устарел и предоставлен только для обеспечения обратной совместимости; новый код должен вызывать getMinSize вместо этого.
void invalidateLayout(Container target)
Очищает кеширование макета, указывая, что если менеджер макета имеет кэшированную информацию, она должна быть удалена.
void layoutContainer(Container parent)
Размещает указанный контейнер с помощью макета Grid Bag.
Point location(int x, int y)
Определяет ячейку в сетке макета, содержащую точку, заданную (x, y).
protected GridBagConstraints lookupConstraints(Component comp)
Возвращает ограничения для указанного компонента.
Dimension maximumLayoutSize(Container target)
Возвращает максимальные размеры для этого макета с учетом компонентов в указанном целевом контейнере.
Dimension minimumLayoutSize(Container parent)
Определяет минимальный размер контейнера parent с помощью макета Grid Bag.
Dimension preferredLayoutSize(Container parent)
Определяет предпочтительный размер контейнера parent с использованием макета Grid Bag.
void removeLayoutComponent(Component comp)
Удаляет указанный компонент из этого макета.
void setConstraints(Component comp, GridBagConstraints constraints)
Устанавливает ограничения для указанного компонента в этом макете.
String toString()
Возвращает строковое представление значений этого макета Grid Bag.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание полей

MAXGRIDSIZE

protected static final int MAXGRIDSIZE
Это поле больше не используется для резервирования массивов и сохранено для обратной совместимости. Ранее это было максимальное количество позиций сетки (как горизонтальных, так и вертикальных), которые могла размещать компоновка Grid Bag. Текущая реализация не накладывает никаких ограничений на размер сетки.
См. также:
  • Значения постоянных полей

MINSIZE

protected static final int MINSIZE
Наименьшая сетка, которую может разместить компоновка Grid Bag.
См. также:
  • Значения постоянных полей

PREFERREDSIZE

protected static final int PREFERREDSIZE
Предпочтительный размер сетки, который может разместить компоновка Grid Bag.
См. также:
  • Значения постоянных полей

comptable

protected Hashtable<Component, GridBagConstraints> comptable
Эта хэш-таблица поддерживает связь между компонентом и его ограничениями GridBagLayout. Ключами в comptable являются компоненты, а значениями — экземпляры GridBagConstraints.
См. также:
  • GridBagConstraints

defaultConstraints

protected GridBagConstraints defaultConstraints
Это поле содержит экземпляр ограничений GridBagLayout, содержащий значения по умолчанию, поэтому, если у компонента нет связанных с ним ограничений GridBagLayout, компонент получит копию defaultConstraints.
См. также:
  • getConstraints(Component)
  • setConstraints(Component, GridBagConstraints)
  • lookupConstraints(Component)

layoutInfo

protected GridBagLayoutInfo layoutInfo
Это поле содержит информацию о компоновке для GridBagLayout. Информация в этом поле основана на последней проверке GridBagLayout. Если layoutInfo равно null, это означает, что в GridBagLayout нет компонентов или если компоненты есть, они ещё не были проверены.
См. также:
  • getLayoutInfo(Container, int)

columnWidths

public int[] columnWidths
Это поле содержит переопределения минимальной ширины столбцов. Если это поле не null, значения применяются к GridBagLayout после расчета всех минимальных ширин столбцов. Если columnWidths содержит больше элементов, чем количество столбцов, в GridBagLayout добавляются столбцы, чтобы соответствовать количеству элементов в columnWidth.
См. также:
  • getLayoutDimensions()

rowHeights

public int[] rowHeights
Это поле содержит переопределения минимальных высот строк. Если это поле не null, значения применяются к GridBagLayout после расчета всех минимальных высот строк. Если rowHeights содержит больше элементов, чем количество строк, строки добавляются в GridBagLayout, чтобы соответствовать количеству элементов в rowHeights.
См. также:
  • getLayoutDimensions()

columnWeights

public double[] columnWeights
Это поле содержит переопределения весов столбцов. Если это поле не null, значения применяются к GridBagLayout после расчета всех весов столбцов. Если требуется вес для столбца i, тогда столбцу i назначается вес из columnWeights[i]. Если columnWeights содержит больше элементов, чем количество столбцов, лишние элементы игнорируются - они не приводят к созданию дополнительных столбцов.

rowWeights

public double[] rowWeights
Это поле содержит переопределения весов строк. Если это поле не null, значения применяются к GridBagLayout после расчета всех весов строк. Если требуется вес для строки i, тогда строке i назначается вес из rowWeights[i]. Если rowWeights содержит больше элементов, чем количество строк, лишние элементы игнорируются - они не приводят к созданию дополнительных строк.

Подробное описание конструкторов

GridBagLayout

public GridBagLayout()
Создает менеджер компоновки Grid Bag.

Подробное описание методов

setConstraints

public void setConstraints(Component comp, GridBagConstraints constraints)
Устанавливает ограничения для указанного компонента в этой компоновке.
Параметры:
comp - компонент, который нужно изменить
constraints - применяемые ограничения

getConstraints

public GridBagConstraints getConstraints(Component comp)
Получает ограничения для указанного компонента. Возвращается копия фактического GridBagConstraints объекта.
Параметры:
comp - компонент, который нужно запросить
Возвращает:
ограничения для указанного компонента в этой компоновке Grid Bag; возвращается копия фактического объекта ограничений

lookupConstraints

protected GridBagConstraints lookupConstraints(Component comp)
Получает ограничения для указанного компонента. Возвращаемое значение не является копией, а является фактическим GridBagConstraints объектом, используемым механизмом компоновки.

Если comp не содержится в GridBagLayout, возвращается набор ограничений по умолчанию. comp значение null является недопустимым и возвращает null.

Параметры:
comp - компонент, который нужно запросить
Возвращает:
ограничения для указанного компонента

getLayoutOrigin

public Point getLayoutOrigin()
Определяет начало области компоновки в пространстве графических координат целевого контейнера. Это значение представляет координаты пикселей верхнего левого угла области компоновки независимо от значения ComponentOrientation контейнера. Это отличается от начала сетки, заданного координатами ячейки (0,0). Большинство приложений не вызывают этот метод напрямую.
Возвращает:
графическое начало ячейки в верхнем левом углу сетки компоновки
С момента:
1.1
См. также:
  • ComponentOrientation

getLayoutDimensions

public int[][] getLayoutDimensions()
Определяет ширину столбцов и высоту строк для сетки компоновки.

Большинство приложений не вызывают этот метод напрямую.

Возвращает:
массив из двух массивов, содержащий ширину столбцов компоновки и высоту строк компоновки
С момента:
1.1

getLayoutWeights

public double[][] getLayoutWeights()
Определяет веса столбцов и строк сетки компоновки. Веса используются для расчета того, насколько данный столбец или строка растягиваются за пределы своего предпочтительного размера, если компоновка имеет дополнительное пространство для заполнения.

Большинство приложений не вызывают этот метод напрямую.

Возвращает:
массив из двух массивов, представляющих горизонтальные веса столбцов компоновки и вертикальные веса строк компоновки
С момента:
1.1

location

public Point location(int x, int y)
Определяет ячейку в сетке макета, содержащую точку, заданную (x, y). Каждая ячейка определяется индексом столбца (от 0 до количества столбцов минус 1) и индексом строки (от 0 до количества строк минус 1).

Если (x, y) точка находится вне сетки, используются следующие правила. Индекс столбца возвращается как ноль, если x находится слева от макета для контейнера слева направо или справа от макета для контейнера справа налево. Индекс столбца возвращается как количество столбцов, если x находится справа от макета в контейнере слева направо или слева в контейнере справа налево. Индекс строки возвращается как ноль, если y находится выше макета, и как количество строк, если y находится ниже макета. Ориентация контейнера определяется его свойством ComponentOrientation.

Parameters:
x - координата x точки
y - координата y точки
Returns:
упорядоченная пара индексов, указывающая ячейку в сетке макета, содержащую точку (x, y).
Since:
1.1
See Also:
  • ComponentOrientation

addLayoutComponent

public void addLayoutComponent(String name, Component comp)
Не оказывает никакого влияния, так как этот менеджер компоновки не использует строку для каждой компоненты.
Specified by:
addLayoutComponent in interface LayoutManager
Parameters:
name - строка, которая должна быть связана с компонентой
comp - компонента, которая должна быть добавлена

addLayoutComponent

public void addLayoutComponent(Component comp, Object constraints)
Добавляет указанную компоненту в компоновку, используя указанный constraints объект. Обратите внимание, что ограничения изменяемы и, следовательно, клонируются при кэшировании.
Specified by:
addLayoutComponent in interface LayoutManager2
Parameters:
comp - компонента, которая должна быть добавлена
constraints - объект, определяющий, как компонента добавляется в компоновку
Throws:
IllegalArgumentException - если constraints не является GridBagConstraint

removeLayoutComponent

public void removeLayoutComponent(Component comp)
Удаляет указанную компоненту из этой компоновки.

Большинство приложений не вызывают этот метод напрямую.

Specified by:
removeLayoutComponent in interface LayoutManager
Parameters:
comp - компонента, которая должна быть удалена.
See Also:
  • Container.remove(java.awt.Component)
  • Container.removeAll()

preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
Определяет предпочтительный размер контейнера parent, используя эту компоновку сетки.

Большинство приложений не вызывают этот метод напрямую.

Specified by:
preferredLayoutSize in interface LayoutManager
Parameters:
parent - контейнер, в котором необходимо выполнить компоновку
Returns:
предпочтительный размер контейнера parent
See Also:
  • Container.getPreferredSize()

minimumLayoutSize

public Dimension minimumLayoutSize(Container parent)
Определяет минимальный размер контейнера parent, используя эту компоновку сетки.

Большинство приложений не вызывают этот метод напрямую.

Specified by:
minimumLayoutSize in interface LayoutManager
Parameters:
parent - контейнер, в котором необходимо выполнить компоновку
Returns:
минимальный размер контейнера parent
See Also:
  • Container.doLayout()

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
Возвращает максимальные размеры для этой компоновки, учитывая компоненты в указанном контейнере-мишени.
Specified by:
maximumLayoutSize in interface LayoutManager2
Parameters:
target - контейнер, который нужно компоновать
Returns:
максимальные размеры для этой компоновки
See Also:
  • Container
  • minimumLayoutSize(Container)
  • preferredLayoutSize(Container)

getLayoutAlignmentX

public float getLayoutAlignmentX(Container parent)
Возвращает выравнивание по оси x. Это определяет, как компонента хочет быть выровнена относительно других компонентов. Значение должно быть числом от 0 до 1, где 0 соответствует выравниванию по началу, 1 — выравнивание по самому дальнему краю от начала, 0,5 — по центру и т. д.
Specified by:
getLayoutAlignmentX in interface LayoutManager2
Parameters:
parent - целевой контейнер
Returns:
значение 0.5f для обозначения центрирования

getLayoutAlignmentY

public float getLayoutAlignmentY(Container parent)
Возвращает выравнивание по оси y. Это определяет, как компонента хочет быть выровнена относительно других компонентов. Значение должно быть числом от 0 до 1, где 0 соответствует выравниванию по началу, 1 — выравнивание по самому дальнему краю от начала, 0,5 — по центру и т. д.
Specified by:
getLayoutAlignmentY in interface LayoutManager2
Parameters:
parent - целевой контейнер
Returns:
значение 0.5f для обозначения центрирования

invalidateLayout

public void invalidateLayout(Container target)
Очищает компоновку, указав, что если менеджер компоновки кэшировал информацию, он должен её отбросить.
Specified by:
invalidateLayout in interface LayoutManager2
Parameters:
target - целевой контейнер

layoutContainer

public void layoutContainer(Container parent)
Выполняет компоновку указанного контейнера, используя эту компоновку сетки. Этот метод изменяет размеры компонентов в указанном контейнере, чтобы удовлетворить ограничениям этого объекта GridBagLayout.

Большинство приложений не вызывают этот метод напрямую.

Specified by:
layoutContainer in interface LayoutManager
Parameters:
parent - контейнер, в котором нужно выполнить компоновку
See Also:
  • Container
  • Container.doLayout()

toString

public String toString()
Возвращает строковое представление значений этой компоновки сетки.
Overrides:
toString in class Object
Returns:
строковое представление этой компоновки сетки.

getLayoutInfo

protected GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag)
Заполняет экземпляр GridBagLayoutInfo для текущего набора управляемых дочерних элементов. Это требует трёх проходов по набору дочерних элементов:
  1. Определить размеры сетки макета.
  2. Определить, какие ячейки занимают компоненты.
  3. Распределить веса и минимальные размеры между строками/столбцами.
Это также кэширует минимальные размеры для всех дочерних элементов при их первом появлении (чтобы последующие циклы не спрашивали снова).

Этот метод должен использоваться только внутри GridBagLayout.

Parameters:
parent - контейнер макета
sizeflag - либо PREFERREDSIZE, либо MINSIZE
Returns:
экземпляр GridBagLayoutInfo для набора дочерних элементов
Since:
1.4

GetLayoutInfo

protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)
Этот метод устарел и предоставлен только для обратной совместимости; новый код должен вызывать getLayoutInfo вместо этого. Заполняет экземпляр GridBagLayoutInfo для текущего набора управляемых дочерних элементов. Этот метод идентичен getLayoutInfo; см. описание getLayoutInfo для получения подробностей.
Parameters:
parent - контейнер макета
sizeflag - либо PREFERREDSIZE, либо MINSIZE
Returns:
экземпляр GridBagLayoutInfo для набора дочерних элементов

adjustForGravity

protected void adjustForGravity(GridBagConstraints constraints, Rectangle r)
Корректирует поля x, y, width и height до правильных значений в зависимости от геометрии ограничений и отступов. Этот метод должен использоваться только внутри GridBagLayout.
Parameters:
constraints - применяемые ограничения
r - корректируемые Rectangle
Since:
1.4

AdjustForGravity

protected void AdjustForGravity(GridBagConstraints constraints, Rectangle r)
Корректирует поля x, y, width и height до правильных значений в зависимости от геометрии ограничений и отступов.

Этот метод устарел и предоставлен только для обратной совместимости; новый код должен вызывать adjustForGravity вместо этого. Этот метод такой же, как adjustForGravity

Parameters:
constraints - применяемые ограничения
r - корректируемые Rectangle

getMinSize

protected Dimension getMinSize(Container parent, GridBagLayoutInfo info)
Определяет минимальный размер родительского элемента на основе информации из getLayoutInfo. Этот метод должен использоваться только внутри GridBagLayout.
Parameters:
parent - контейнер макета
info - информация о макете для этого родителя
Returns:
объект Dimension, содержащий минимальный размер
Since:
1.4

GetMinSize

protected Dimension GetMinSize(Container parent, GridBagLayoutInfo info)
Этот метод устарел и предоставлен только для обратной совместимости; новый код должен вызывать getMinSize вместо этого. Этот метод такой же, как getMinSize
Parameters:
parent - контейнер макета
info - информация о макете для этого родителя
Returns:
объект Dimension, содержащий минимальный размер

arrangeGrid

protected void arrangeGrid(Container parent)
Выполняет разметку сетки. Этот метод должен использоваться только внутри GridBagLayout.
Parameters:
parent - контейнер макета
Since:
1.4

ArrangeGrid

protected void ArrangeGrid(Container parent)
Этот метод устарел и предоставлен только для обратной совместимости; новый код должен вызывать arrangeGrid вместо этого. Этот метод такой же, как arrangeGrid
Parameters:
parent - контейнер макета

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/GridBagLayout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API