Spec-Zone.ru › OpenJDK 27

Класс BorderLayout

java.lang.Object
java.awt.BorderLayout
Все реализуемые интерфейсы:
LayoutManager, LayoutManager2, Serializable
public class BorderLayout extends Object implements LayoutManager2, Serializable
Граничная компоновка размещает компоненты контейнера и изменяет их размеры, чтобы они поместились в пяти областях: северной, южной, восточной, западной и центральной. В каждой области может находиться не более одного компонента; области обозначаются соответствующими константами: NORTH, SOUTH, EAST, WEST и CENTER. При добавлении компонента в контейнер с граничной компоновкой используйте одну из этих пяти констант, например:
   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:

Diagram of a window
demonstrating BorderLayout. Each section of the BorderLayout contains a
Button corresponding to its position in the layout, one of: North, West,
Center, East, or South.

Код этой программы выглядит следующим образом:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.EventQueue;
import java.awt.Frame;

public class BorderLayoutExample {

    public static void main(String[] args) throws Exception {
        EventQueue.invokeAndWait(() -> {
            Frame frame = new Frame("BorderLayout");
            frame.setLayout(new BorderLayout());
            frame.add(new Button("North"), BorderLayout.NORTH);
            frame.add(new Button("South"), BorderLayout.SOUTH);
            frame.add(new Button("East"), BorderLayout.EAST);
            frame.add(new Button("West"), BorderLayout.WEST);
            frame.add(new Button("Center"), BorderLayout.CENTER);
            frame.setSize(300, 300);
            frame.setVisible(true);
        });
    }
}
Начиная с:
1.0
См. также:
  • Container.add(String, Component)
  • ComponentOrientation
  • Сериализованная форма

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

Модификатор и тип Поле Описание
static final String AFTER_LAST_LINE
Синоним PAGE_END.
static final String AFTER_LINE_ENDS
Синоним LINE_END.
static final String BEFORE_FIRST_LINE
Синоним PAGE_START.
static final String BEFORE_LINE_BEGINS
Синоним LINE_START.
static final String CENTER
Ограничение компоновки для центра (середина контейнера).
static final String EAST
Ограничение компоновки для восточной области (правая сторона контейнера).
static final String LINE_END
Компонент размещается в конце направления строк компоновки.
static final String LINE_START
Компонент размещается в начале направления строк компоновки.
static final String NORTH
Ограничение компоновки для северной области (верх контейнера).
static final String PAGE_END
Компонент размещается после последней строки содержимого компоновки.
static final String PAGE_START
Компонент размещается перед первой строкой содержимого компоновки.
static final String SOUTH
Ограничение компоновки для южной области (низ контейнера).
static final String WEST
Ограничение компоновки для западной области (левая сторона контейнера).

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

Конструктор Описание
BorderLayout()
Создаёт новую граничную компоновку без промежутков между компонентами.
BorderLayout(int hgap, int vgap)
Создаёт граничную компоновку с указанными промежутками между компонентами.

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

Модификатор и тип Метод Описание
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)
Возвращает компонент, соответствующий заданному расположению ограничения, с учётом ориентации компонентов целевого Container.
Component getLayoutComponent(Object constraints)
Возвращает компонент, добавленный с использованием заданного ограничения
int getVgap()
Возвращает вертикальный промежуток между компонентами.
void invalidateLayout(Container target)
Помечает компоновку как недействительную, указывая, что кэшированную информацию менеджера компоновки следует удалить.
void layoutContainer(Container target)
Размещает контейнер, переданный в качестве аргумента, с помощью этой граничной компоновки.
Dimension maximumLayoutSize(Container target)
Возвращает максимальные размеры этой компоновки с учётом компонентов указанного целевого контейнера.
Dimension minimumLayoutSize(Container target)
Определяет минимальный размер контейнера target с помощью этого менеджера компоновки.
Dimension preferredLayoutSize(Container target)
Определяет предпочтительный размер контейнера target с помощью этого менеджера компоновки, исходя из компонентов контейнера.
void removeLayoutComponent(Component comp)
Удаляет указанный компонент из этой граничной компоновки.
void setHgap(int hgap)
Задаёт горизонтальный промежуток между компонентами.
void setVgap(int vgap)
Задаёт вертикальный промежуток между компонентами.
String toString()
Возвращает строковое представление состояния этой граничной компоновки.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект другому объекту.
protected void finalize()
Устарел, подлежит удалению: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt либо до истечения заданного промежутка реального времени.

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

NORTH

public static final String NORTH
Ограничение компоновки north (верх контейнера).
См. также:
  • Значения константных полей

SOUTH

public static final String SOUTH
Ограничение компоновки south (низ контейнера).
См. также:
  • Значения константных полей

EAST

public static final String EAST
Ограничение компоновки east (правая сторона контейнера).
См. также:
  • Значения константных полей

WEST

public static final String WEST
Ограничение компоновки west (левая сторона контейнера).
См. также:
  • Значения константных полей

CENTER

public static final String CENTER
Ограничение компоновки center (середина контейнера).
См. также:
  • Значения константных полей

BEFORE_FIRST_LINE

public static final String BEFORE_FIRST_LINE
Синоним PAGE_START. Существует для совместимости с предыдущими версиями. Рекомендуется использовать PAGE_START.
Начиная с версии:
1.2
См. также:
  • PAGE_START
  • Значения константных полей

AFTER_LAST_LINE

public static final String AFTER_LAST_LINE
Синоним PAGE_END. Существует для совместимости с предыдущими версиями. Рекомендуется использовать PAGE_END.
Начиная с версии:
1.2
См. также:
  • PAGE_END
  • Значения константных полей

BEFORE_LINE_BEGINS

public static final String BEFORE_LINE_BEGINS
Синоним LINE_START. Существует для совместимости с предыдущими версиями. Рекомендуется использовать LINE_START.
Начиная с версии:
1.2
См. также:
  • LINE_START
  • Значения константных полей

AFTER_LINE_ENDS

public static final String AFTER_LINE_ENDS
Синоним LINE_END. Существует для совместимости с предыдущими версиями. Рекомендуется использовать LINE_END.
Начиная с версии:
1.2
См. также:
  • LINE_END
  • Значения константных полей

PAGE_START

public static final String PAGE_START
Компонент располагается перед первой строкой содержимого компоновки. Для западной ориентации, при направлении текста слева направо и сверху вниз, это эквивалентно NORTH.
Начиная с версии:
1.4
См. также:
  • Component.getComponentOrientation()
  • Значения константных полей

PAGE_END

public static final String PAGE_END
Компонент располагается после последней строки содержимого компоновки. Для западной ориентации, при направлении текста слева направо и сверху вниз, это эквивалентно SOUTH.
Начиная с версии:
1.4
См. также:
  • Component.getComponentOrientation()
  • Значения константных полей

LINE_START

public static final String LINE_START
Компонент располагается в начале направления строки для данной компоновки. Для западной ориентации, при направлении текста слева направо и сверху вниз, это эквивалентно WEST.
Начиная с версии:
1.4
См. также:
  • Component.getComponentOrientation()
  • Значения константных полей

LINE_END

public static final String LINE_END
Компонент располагается в конце направления строки для данной компоновки. Для западной ориентации, при направлении текста слева направо и сверху вниз, это эквивалентно EAST.
Начиная с версии:
1.4
См. также:
  • Component.getComponentOrientation()
  • Значения константных полей

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

BorderLayout

public BorderLayout()
Создает новую компоновку с границами без промежутков между компонентами.

BorderLayout

public BorderLayout(int hgap, int vgap)
Создает компоновку с границами и заданными промежутками между компонентами. Горизонтальный промежуток задается параметром 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.
Параметры:
target — контейнер Container, используемый для получения места ограничения с учетом ориентации компонентов целевого контейнера Container.
constraints — требуемая абсолютная позиция: одна из CENTER, NORTH, SOUTH, EAST, WEST
Возвращает:
компонент в указанном месте или null, если место пусто
Вызывает исключение:
IllegalArgumentException — если объект ограничения не входит в число пяти указанных констант
NullPointerException — если целевой параметр равен 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(Container)
  • Container.getMinimumSize()

preferredLayoutSize

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

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

Определен в:
preferredLayoutSize в интерфейсе LayoutManager
Параметры:
target — контейнер, в котором выполняется компоновка.
Возвращает:
предпочтительные размеры для размещения дочерних компонентов указанного контейнера.
См. также:
  • Container
  • minimumLayoutSize(Container)
  • Container.getPreferredSize()

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
Возвращает максимальные размеры для этой компоновки с учетом компонентов указанного целевого контейнера.
Определен в:
maximumLayoutSize в интерфейсе LayoutManager2
Параметры:
target — компонент, который необходимо скомпоновать
Возвращает:
максимальный размер контейнера
См. также:
  • Container
  • minimumLayoutSize(Container)
  • preferredLayoutSize(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()
Возвращает строковое представление состояния этой компоновки с границами.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой компоновки с границами.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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