Класс BorderLayout
- java.lang.Object
-
- java.awt.BorderLayout
- Все реализованные интерфейсы:
-
LayoutManager,LayoutManager2,Serializable
public class BorderLayout extends Object implements LayoutManager2, Serializable
Макет border layout размещает компоненты в контейнере, распределяя и изменяя их размер для соответствия пяти областям: north, south, east, west и center. Каждая область может содержать не более одного компонента и определяется соответствующей константой: NORTH, SOUTH, EAST, WEST, и CENTER. При добавлении компонента в контейнер с макетом border layout используйте одну из этих пяти констант, например:
Panel p = new Panel();
p.setLayout(new BorderLayout());
p.add(new Button("Okay"), BorderLayout.SOUTH); Для удобства, BorderLayout интерпретирует отсутствие строковой спецификации так же, как константу CENTER: Panel p2 = new Panel();
p2.setLayout(new BorderLayout());
p2.add(new TextArea()); // Same as p.add(new TextArea(), BorderLayout.CENTER);
Кроме того, BorderLayout поддерживает константы относительного позиционирования, PAGE_START, PAGE_END, LINE_START, и LINE_END. В контейнере, у которого ComponentOrientation установлено в ComponentOrientation.LEFT_TO_RIGHT, эти константы соответствуют NORTH, SOUTH, WEST, и EAST, соответственно.
Для совместимости с предыдущими версиями, BorderLayout также включает константы относительного позиционирования BEFORE_FIRST_LINE, AFTER_LAST_LINE, BEFORE_LINE_BEGINS и AFTER_LINE_ENDS. Они эквивалентны PAGE_START, PAGE_END, LINE_START и LINE_END, соответственно. Для согласованности с константами относительного позиционирования, используемыми другими компонентами, предпочтительны последние константы.
Смешение абсолютных и относительных констант позиционирования может привести к непредсказуемым результатам. Если вы используете оба типа, относительные константы будут иметь приоритет. Например, если вы добавляете компоненты, используя константы NORTH и PAGE_START в контейнере, ориентация которого LEFT_TO_RIGHT, только PAGE_START будут размещены.
ПРИМЕЧАНИЕ: В настоящее время BorderLayout не поддерживает вертикальную ориентацию. Настройка isVertical в контейнере ComponentOrientation не учитывается.
Компоненты размещаются в соответствии со своими предпочтительными размерами и ограничениями размера контейнера. Компоненты NORTH и SOUTH могут растягиваться горизонтально; компоненты EAST и WEST могут растягиваться вертикально; компонент CENTER может растягиваться и горизонтально, и вертикально, заполняя оставшееся пространство.
Вот пример пяти кнопок в апплете, размещенных с помощью менеджера макета BorderLayout:
Код этого апплета следующий:
import java.awt.*;
import java.applet.Applet;
public class buttonDir extends Applet {
public void init() {
setLayout(new BorderLayout());
add(new Button("North"), BorderLayout.NORTH);
add(new Button("South"), BorderLayout.SOUTH);
add(new Button("East"), BorderLayout.EAST);
add(new Button("West"), BorderLayout.WEST);
add(new Button("Center"), BorderLayout.CENTER);
}
}
- С:
- 1.0
- См. также:
-
Container.add(String, Component),ComponentOrientation, Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | AFTER_LAST_LINE | Синоним для PAGE_END. |
static String | AFTER_LINE_ENDS | Синоним для LINE_END. |
static String | BEFORE_FIRST_LINE | Синоним для PAGE_START. |
static String | BEFORE_LINE_BEGINS | Синоним для LINE_START. |
static String | CENTER | Ограничение макета для центра (середина контейнера). |
static String | EAST | Ограничение макета для правой стороны контейнера. |
static String | LINE_END | Компонент помещается в конец направления строки для макета. |
static String | LINE_START | Компонент помещается в начало направления строки для макета. |
static String | NORTH | Ограничение макета для верхней части контейнера. |
static String | PAGE_END | Компонент располагается после последней строки содержимого макета. |
static String | PAGE_START | Компонент располагается перед первой строкой содержимого макета. |
static String | SOUTH | Ограничение макета для нижней части контейнера. |
static String | WEST | Ограничение макета для левой стороны контейнера. |
Конструкторы
| Конструктор | Описание |
|---|---|
BorderLayout() | Создает новый макет border layout без отступов между компонентами. |
BorderLayout(int hgap,
int vgap) | Создает макет border layout с указанными отступами между компонентами. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addLayoutComponent(Component comp,
Object constraints) | Добавляет указанный компонент в макет, используя указанный объект ограничения. |
void | addLayoutComponent(String name,
Component comp) | Устарел. Заменен на addLayoutComponent(Component, Object). |
Object | getConstraints(Component comp) | Возвращает ограничения для указанного компонента |
int | getHgap() | Возвращает горизонтальный зазор между компонентами. |
float | getLayoutAlignmentX(Container parent) | Возвращает выравнивание по оси x. |
float | getLayoutAlignmentY(Container parent) | Возвращает выравнивание по оси y. |
Component | getLayoutComponent(Container target,
Object constraints) | Возвращает компонент, соответствующий заданному ограничению расположения, исходя из ориентации компонента целевого |
Component | getLayoutComponent(Object constraints) | Получает компонент, добавленный с использованием данного ограничения |
int | getVgap() | Возвращает вертикальный зазор между компонентами. |
void | invalidateLayout(Container target) | Обнуляет макет, указывая, что если менеджер макета кэшировал информацию, он должен её удалить. |
void | layoutContainer(Container target) | Размещает контейнер argument с использованием этого макета border layout. |
Dimension | maximumLayoutSize(Container target) | Возвращает максимальные размеры для этого макета, учитывая компоненты в указанном целевом контейнере. |
Dimension | minimumLayoutSize(Container target) | Определяет минимальный размер контейнера |
Dimension | preferredLayoutSize(Container target) | Определяет предпочтительный размер контейнера |
void | removeLayoutComponent(Component comp) | Удаляет указанный компонент из этого макета border layout. |
void | setHgap(int hgap) | Устанавливает горизонтальный зазор между компонентами. |
void | setVgap(int vgap) | Устанавливает вертикальный зазор между компонентами. |
String | toString() | Возвращает строковое представление состояния этого макета border layout. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
СВЕРХУ
public static final String NORTH
Ограничение компоновки «Сверху» (верхняя часть контейнера).
- См. также:
- Значения постоянных полей
СНИЗУ
public static final String SOUTH
Ограничение компоновки «Снизу» (нижняя часть контейнера).
- См. также:
- Значения постоянных полей
ВОСТОК
public static final String EAST
Ограничение компоновки «Восток» (правая сторона контейнера).
- См. также:
- Значения постоянных полей
ЗАПАД
public static final String WEST
Ограничение компоновки «Запад» (левая сторона контейнера).
- См. также:
- Значения постоянных полей
ЦЕНТР
public static final String CENTER
Ограничение компоновки «Центр» (середина контейнера).
- См. также:
- Значения постоянных полей
ПЕРЕД_ПЕРВОЙ_СТРОКОЙ
public static final String BEFORE_FIRST_LINE
Синоним для PAGE_START. Существует для совместимости с предыдущими версиями. PAGE_START предпочтительнее.
- С:
- 1.2
- См. также:
-
PAGE_START, Значения постоянных полей
ПОСЛЕ_ПОСЛЕДНЕЙ_СТРОКИ
public static final String AFTER_LAST_LINE
Синоним для PAGE_END. Существует для совместимости с предыдущими версиями. PAGE_END предпочтительнее.
- С:
- 1.2
- См. также:
-
PAGE_END, Значения постоянных полей
ПЕРЕД_НАЧАЛОМ_СТРОКИ
public static final String BEFORE_LINE_BEGINS
Синоним для LINE_START. Существует для совместимости с предыдущими версиями. LINE_START предпочтительнее.
- С:
- 1.2
- См. также:
-
LINE_START, Значения постоянных полей
ПОСЛЕ_КОНЦА_СТРОКИ
public static final String AFTER_LINE_ENDS
Синоним для LINE_END. Существует для совместимости с предыдущими версиями. LINE_END предпочтительнее.
- С:
- 1.2
- См. также:
-
LINE_END, Значения постоянных полей
НАЧАЛО_СТРАНИЦЫ
public static final String PAGE_START
Компонент располагается перед первой строкой содержимого компоновки. В западной ориентации (слева направо и сверху вниз) эквивалентно СВЕРХУ.
- С:
- 1.4
- См. также:
-
Component.getComponentOrientation(), Значения постоянных полей
КОНЕЦ_СТРАНИЦЫ
public static final String PAGE_END
Компонент располагается после последней строки содержимого компоновки. В западной ориентации (слева направо и сверху вниз) эквивалентно СНИЗУ.
- С:
- 1.4
- См. также:
-
Component.getComponentOrientation(), Значения постоянных полей
НАЧАЛО_СТРОКИ
public static final String LINE_START
Компонент располагается в начале направления строки компоновки. В западной ориентации (слева направо и сверху вниз) эквивалентно ЗАПАДУ.
- С:
- 1.4
- См. также:
-
Component.getComponentOrientation(), Значения постоянных полей
КОНЕЦ_СТРОКИ
public static final String LINE_END
Компонент располагается в конце направления строки компоновки. В западной ориентации (слева направо и сверху вниз) эквивалентно ВОСТОКУ.
- С:
- 1.4
- См. также:
-
Component.getComponentOrientation(), Значения постоянных полей
Конструкторы
BorderLayout
public BorderLayout()
Создаёт новую компоновку BorderLayout без отступов между компонентами.
BorderLayout
public BorderLayout(int hgap,
int vgap) Создаёт компоновку BorderLayout с заданными отступами между компонентами. Горизонтальный отступ задаётся значением hgap, а вертикальный — vgap.
- Параметры:
-
hgap- горизонтальный отступ. -
vgap- вертикальный отступ.
Методы
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(Component comp,
Object constraints) Добавляет указанный компонент в макет, используя указанный объект ограничения. Для макетов типа «рамка» ограничение должно быть одним из следующих констант: NORTH, SOUTH, EAST, WEST, или CENTER.
Большинство приложений не вызывают этот метод напрямую. Этот метод вызывается, когда компонент добавляется в контейнер с использованием метода Container.add с теми же типами аргументов.
- Определено в:
-
addLayoutComponentв интерфейсеLayoutManager2 - Параметры:
-
comp- добавляемый компонент. -
constraints- объект, определяющий, как и где компонент добавляется в макет. - Исключения:
-
IllegalArgumentException- если объект ограничения не является строкой или не соответствует одному из пяти указанных констант. - С:
- 1.1
- См. также:
Container.add(java.awt.Component, java.lang.Object)
addLayoutComponent
@Deprecated
public void addLayoutComponent(String name,
Component comp) addLayoutComponent(Component, Object).Описание скопировано из интерфейса: LayoutManager
Если менеджер макета использует строку для каждого компонента, добавляет компонент comp в макет, связывая его со строкой, указанной name.
- Определено в:
-
addLayoutComponentв интерфейсеLayoutManager - Параметры:
-
name- строка, которая будет связана с компонентом -
comp- добавляемый компонент
removeLayoutComponent
public void removeLayoutComponent(Component comp)
Удаляет указанный компонент из макета типа «рамка». Этот метод вызывается, когда контейнер вызывает свои методы remove или removeAll. Большинство приложений не вызывают этот метод напрямую.
- Определено в:
-
removeLayoutComponentв интерфейсеLayoutManager - Параметры:
-
comp- удаляемый компонент. - См. также:
-
Container.remove(java.awt.Component),Container.removeAll()
getLayoutComponent
public Component getLayoutComponent(Object constraints)
Возвращает компонент, добавленный с использованием данного ограничения
- Параметры:
-
constraints- желаемое ограничение, одно изCENTER,NORTH,SOUTH,WEST,EAST,PAGE_START,PAGE_END,LINE_START,LINE_END - Возвращает:
- компонент в заданном месте или
nullесли место пустое - Исключения:
-
IllegalArgumentException- если объект ограничения не соответствует одному из девяти указанных констант - С:
- 1.5
- См. также:
addLayoutComponent(java.awt.Component, java.lang.Object)
getLayoutComponent
public Component getLayoutComponent(Container target,
Object constraints) Возвращает компонент, соответствующий заданному положению ограничения, на основе ориентации компонента целевого Container. Компоненты, добавленные с относительными ограничениями PAGE_START, PAGE_END, LINE_START, и LINE_END, имеют приоритет над компонентами, добавленными с явными ограничениями NORTH, SOUTH, WEST, и EAST. Ориентация компонента Container используется для определения расположения компонентов, добавленных с LINE_START и LINE_END.
- Параметры:
-
constraints- желаемое абсолютное положение, одно изCENTER,NORTH,SOUTH,EAST,WEST -
target-Containerиспользуется для получения положения ограничения на основе ориентации компонента целевогоContainer. - Возвращает:
- компонент в заданном месте, или
nullесли место пустое - Исключения:
-
IllegalArgumentException- если объект ограничения не соответствует одному из пяти указанных констант -
NullPointerException- если параметр target равен null - С:
- 1.5
- См. также:
addLayoutComponent(java.awt.Component, java.lang.Object)
getConstraints
public Object getConstraints(Component comp)
Получает ограничения для указанного компонента
- Параметры:
-
comp- компонент для запроса - Возвращает:
- ограничение для указанного компонента, или null, если компонент равен null или отсутствует в этом макете
- С:
- 1.5
- См. также:
addLayoutComponent(java.awt.Component, java.lang.Object)
minimumLayoutSize
public Dimension minimumLayoutSize(Container target)
Определяет минимальный размер контейнера target с использованием этого менеджера макета.
Этот метод вызывается, когда контейнер вызывает свой метод getMinimumSize. Большинство приложений не вызывают этот метод напрямую.
- Определено в:
-
minimumLayoutSizeв интерфейсеLayoutManager - Параметры:
-
target- контейнер, в котором нужно выполнить макетирование. - Возвращает:
- минимальные размеры, необходимые для размещения подкомпонентов указанного контейнера.
- См. также:
-
Container,preferredLayoutSize(java.awt.Container),Container.getMinimumSize()
preferredLayoutSize
public Dimension preferredLayoutSize(Container target)
Определяет предпочтительный размер контейнера target с использованием этого менеджера макета, на основе компонентов в контейнере.
Большинство приложений не вызывают этот метод напрямую. Этот метод вызывается, когда контейнер вызывает метод getPreferredSize.
- Определено в:
-
preferredLayoutSizeв интерфейсеLayoutManager - Параметры:
-
target- контейнер, в котором нужно выполнить макетирование. - Возвращает:
- предпочтительные размеры для размещения подкомпонентов указанного контейнера.
- См. также:
-
Container,minimumLayoutSize(java.awt.Container),Container.getPreferredSize()
maximumLayoutSize
public Dimension maximumLayoutSize(Container target)
Возвращает максимальные размеры для этого макета, учитывая компоненты в указанном целевом контейнере.
- Определено в:
-
maximumLayoutSizeв интерфейсеLayoutManager2 - Параметры:
-
target- компонент, который нужно разместить - Возвращает:
- максимальный размер контейнера
- См. также:
-
Container,minimumLayoutSize(java.awt.Container),preferredLayoutSize(java.awt.Container)
getLayoutAlignmentX
public float getLayoutAlignmentX(Container parent)
Возвращает выравнивание по оси x. Это определяет, как компонент хочет выровняться относительно других компонентов. Значение должно быть числом от 0 до 1, где 0 соответствует выравниванию по началу координат, 1 — наибольшее удаление от начала координат, 0,5 — центрирование и т. д.
- Определено в:
-
getLayoutAlignmentXв интерфейсеLayoutManager2 - Параметры:
-
parent- целевой контейнер - Возвращает:
- предпочитаемое выравнивание по оси x
getLayoutAlignmentY
public float getLayoutAlignmentY(Container parent)
Возвращает выравнивание по оси y. Это определяет, как компонент хочет выровняться относительно других компонентов. Значение должно быть числом от 0 до 1, где 0 соответствует выравниванию по началу координат, 1 — наибольшее удаление от начала координат, 0,5 — центрирование и т. д.
- Определено в:
-
getLayoutAlignmentYв интерфейсеLayoutManager2 - Параметры:
-
parent- целевой контейнер - Возвращает:
- предпочитаемое выравнивание по оси y
invalidateLayout
public void invalidateLayout(Container target)
Делает макет недействительным, указывая, что если менеджер макета кэшировал информацию, он должен её отбросить.
- Определено в:
-
invalidateLayoutв интерфейсеLayoutManager2 - Параметры:
-
target- целевой контейнер
layoutContainer
public void layoutContainer(Container target)
Выполняет компоновку аргумента контейнера с использованием этой компоновки по границам.
Этот метод фактически изменяет форму компонентов в указанном контейнере, чтобы удовлетворить ограничениям этого объекта BorderLayout. Компоненты NORTH и SOUTH, если таковые имеются, размещаются соответственно в верхней и нижней частях контейнера. Компоненты WEST и EAST затем размещаются слева и справа соответственно. Наконец, объект CENTER размещается в оставшемся пространстве посередине.
Большинство приложений не вызывают этот метод напрямую. Этот метод вызывается, когда контейнер вызывает свой метод doLayout.
- Установлено в:
-
layoutContainerв интерфейсеLayoutManager - Параметры:
-
target- контейнер, в котором выполняется компоновка. - См. также:
-
Container,Container.doLayout()
toString
public String toString()
Возвращает строковое представление состояния этой компоновки по границам.
© 1993, 2020, 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://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/BorderLayout.html