Spec-Zone.ru › OpenJDK 25

Класс BorderLayout

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

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

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

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

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

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

NORTH

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

SOUTH

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

EAST

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

WEST

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

CENTER

public static final String 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 — если параметр 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(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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/BorderLayout.html

Spec-Zone.ru

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