Класс GridLayout
- Все реализованные интерфейсы:
LayoutManager, Serializable
public class GridLayout extends Object implements LayoutManager, Serializable
GridLayout — это менеджер компоновки, который размещает компоненты контейнера в прямоугольной сетке. Контейнер делится на прямоугольники одинакового размера, и в каждом прямоугольнике размещается один компонент. Например, ниже показано окно, в котором шесть кнопок размещены в три строки и два столбца: import java.awt.Button;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.GridLayout;
public class GridLayoutExample {
public static void main(String[] args) throws Exception {
EventQueue.invokeAndWait(() -> {
Frame frame = new Frame("GridLayout");
frame.setLayout(new GridLayout(3, 2));
frame.add(new Button("1"));
frame.add(new Button("2"));
frame.add(new Button("3"));
frame.add(new Button("4"));
frame.add(new Button("5"));
frame.add(new Button("6"));
frame.setSize(200, 200);
frame.setVisible(true);
});
}
}
Если свойство ComponentOrientation контейнера имеет горизонтальную ориентацию и направление слева направо, приведённый выше пример создаёт результат, показанный на рисунке 1. Если свойство ComponentOrientation контейнера имеет горизонтальную ориентацию и направление справа налево, пример создаёт результат, показанный на рисунке 2.
Рисунок 1: горизонтальная ориентация, слева направо
Рисунок 2: горизонтальная ориентация, справа налево
Если и число строк, и число столбцов заданы ненулевыми значениями — в конструкторе или методами setRows и setColumns, — указанное число столбцов игнорируется. Вместо этого число столбцов определяется по заданному числу строк и общему числу компонентов в компоновке. Например, если указаны три строки и два столбца, а в компоновку добавлены девять компонентов, они будут отображены в виде трёх строк по три столбца. Указание числа столбцов влияет на компоновку, только если число строк равно нулю.
- Начиная с версии:
- 1.0
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
GridLayout() |
Создаёт компоновку в виде сетки с одним столбцом на компонент по умолчанию и одной строкой. |
GridLayout |
Создаёт компоновку в виде сетки с указанным числом строк и столбцов. |
GridLayout |
Создаёт компоновку в виде сетки с указанным числом строк и столбцов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addLayoutComponent |
Добавляет в компоновку указанный компонент с заданным именем. |
int |
getColumns() |
Возвращает число столбцов в этой компоновке. |
int |
getHgap() |
Возвращает горизонтальный промежуток между компонентами. |
int |
getRows() |
Возвращает число строк в этой компоновке. |
int |
getVgap() |
Возвращает вертикальный промежуток между компонентами. |
void |
layoutContainer |
Размещает указанный контейнер с помощью этой компоновки. |
Dimension |
minimumLayoutSize |
Определяет минимальный размер контейнера-аргумента с помощью этой компоновки в виде сетки. |
Dimension |
preferredLayoutSize |
Определяет предпочтительный размер контейнера-аргумента с помощью этой компоновки в виде сетки. |
void |
removeLayoutComponent |
Удаляет указанный компонент из компоновки. |
void |
setColumns |
Задаёт для числа столбцов в этой компоновке указанное значение. |
void |
setHgap |
Задаёт для горизонтального промежутка между компонентами указанное значение. |
void |
setRows |
Задаёт для числа строк в этой компоновке указанное значение. |
void |
setVgap |
Задаёт для вертикального промежутка между компонентами указанное значение. |
String |
toString() |
Возвращает строковое представление значений этой компоновки в виде сетки. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Определяет, является ли другой объект «равным» этому объекту. |
protected void |
finalize() |
Устарел, будет удалён: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не истечёт заданное время. |
final void |
wait |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не истечёт заданное время. |
Подробное описание конструкторов
GridLayout
public GridLayout()
- Начиная с версии:
- 1.1
GridLayout
public GridLayout(int rows, int cols)
Одно, но не оба значения — rows и cols — может быть равно нулю; это означает, что в строке или столбце можно разместить любое число объектов.
- Параметры:
-
rows— число строк; значение ноль означает любое число строк. -
cols— число столбцов; значение ноль означает любое число столбцов.
GridLayout
public GridLayout(int rows, int cols, int hgap, int vgap)
Кроме того, горизонтальный и вертикальный промежутки задаются указанными значениями. Горизонтальные промежутки располагаются между столбцами. Вертикальные промежутки располагаются между строками.
Одно, но не оба значения — rows и cols — может быть равно нулю; это означает, что в строке или столбце можно разместить любое число объектов.
Все конструкторы GridLayout делегируют вызов этому конструктору.
- Параметры:
-
rows— число строк; значение ноль означает любое число строк -
cols— число столбцов; значение ноль означает любое число столбцов -
hgap— горизонтальный промежуток -
vgap— вертикальный промежуток - Исключения:
-
IllegalArgumentException— если значенияrowsиcolsодновременно равны нулю
Подробное описание методов
getRows
public int getRows()
- Возвращает:
- число строк в этой компоновке
- Начиная с версии:
- 1.1
setRows
public void setRows(int rows)
- Параметры:
-
rows— число строк в этой компоновке - Исключения:
-
IllegalArgumentException— если значенияrowsиcolsодновременно равны нулю - Начиная с версии:
- 1.1
getColumns
public int getColumns()
- Возвращает:
- число столбцов в этой компоновке
- Начиная с версии:
- 1.1
setColumns
public void setColumns(int cols)
setRows, не равно нулю. В этом случае число столбцов в компоновке определяется общим числом компонентов и указанным числом строк.- Параметры:
-
cols— число столбцов в этой компоновке - Исключения:
-
IllegalArgumentException— если значенияrowsиcolsодновременно равны нулю - Начиная с версии:
- 1.1
getHgap
public int getHgap()
- Возвращает:
- горизонтальный промежуток между компонентами
- Начиная с версии:
- 1.1
setHgap
public void setHgap(int hgap)
- Параметры:
-
hgap— горизонтальный промежуток между компонентами - Начиная с версии:
- 1.1
getVgap
public int getVgap()
- Возвращает:
- вертикальный промежуток между компонентами
- Начиная с версии:
- 1.1
setVgap
public void setVgap(int vgap)
- Параметры:
-
vgap— вертикальный промежуток между компонентами - Начиная с версии:
- 1.1
addLayoutComponent
public void addLayoutComponent(String name, Component comp)
- Определено в:
-
addLayoutComponentв интерфейсеLayoutManager - Параметры:
-
name— имя компонента -
comp— добавляемый компонент
removeLayoutComponent
public void removeLayoutComponent(Component comp)
- Определено в:
-
removeLayoutComponentв интерфейсеLayoutManager - Параметры:
-
comp— удаляемый компонент
preferredLayoutSize
public Dimension preferredLayoutSize(Container parent)
Предпочтительная ширина компоновки в виде сетки равна наибольшей предпочтительной ширине всех компонентов контейнера, умноженной на число столбцов, плюс горизонтальные отступы, умноженные на число столбцов минус один, плюс левый и правый внутренние отступы целевого контейнера.
Предпочтительная высота компоновки в виде сетки равна наибольшей предпочтительной высоте всех компонентов контейнера, умноженной на число строк, плюс вертикальные отступы, умноженные на число строк минус один, плюс верхний и нижний внутренние отступы целевого контейнера.
- Определено в:
-
preferredLayoutSizeв интерфейсеLayoutManager - Параметры:
-
parent— контейнер, в котором выполняется компоновка - Возвращает:
- предпочтительные размеры для размещения вложенных компонентов указанного контейнера
- См. также:
minimumLayoutSize
public Dimension minimumLayoutSize(Container parent)
Минимальная ширина компоновки в виде сетки равна наибольшей минимальной ширине всех компонентов контейнера, умноженной на число столбцов, плюс горизонтальные отступы, умноженные на число столбцов минус один, плюс левый и правый внутренние отступы целевого контейнера.
Минимальная высота компоновки в виде сетки равна наибольшей минимальной высоте всех компонентов контейнера, умноженной на число строк, плюс вертикальные отступы, умноженные на число строк минус один, плюс верхний и нижний внутренние отступы целевого контейнера.
- Определено в:
-
minimumLayoutSizeв интерфейсеLayoutManager - Параметры:
-
parent— контейнер, в котором выполняется компоновка - Возвращает:
- минимальные размеры, необходимые для размещения вложенных компонентов указанного контейнера
- См. также:
layoutContainer
public void layoutContainer(Container parent)
Этот метод изменяет форму компонентов в указанном целевом контейнере, чтобы соблюсти ограничения объекта GridLayout.
Менеджер компоновки в виде сетки определяет размер отдельных компонентов, разделяя свободное пространство контейнера на равные части в соответствии с числом строк и столбцов в компоновке. Свободное пространство контейнера равно его размеру за вычетом внутренних отступов и заданных горизонтальных или вертикальных промежутков. Всем компонентам в компоновке в виде сетки назначается одинаковый размер.
- Определено в:
-
layoutContainerв интерфейсеLayoutManager - Параметры:
-
parent— контейнер, в котором выполняется компоновка - См. также:
toString
© 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.