Класс BoxLayout
- Все реализуемые интерфейсы:
LayoutManager, LayoutManager2, Serializable
- Прямые известные подклассы:
DefaultMenuLayout
public class BoxLayout extends Object implements LayoutManager2, Serializable
Пример:
Вложение нескольких панелей с различными сочетаниями горизонтального и вертикального расположения позволяет добиться эффекта, подобного GridBagLayout, но без его сложности. На схеме показаны две панели, расположенные горизонтально, каждая из которых содержит 3 компонента, расположенных вертикально.
Менеджер BoxLayout создается с параметром оси, который задает тип выполняемой компоновки. Возможны четыре варианта:
-
X_AXIS— компоненты располагаются горизонтально слева направо. -
Y_AXIS— компоненты располагаются вертикально сверху вниз. -
LINE_AXIS— компоненты располагаются так же, как слова в строке, в соответствии со свойствомComponentOrientationконтейнера. Если свойствоComponentOrientationконтейнера задает горизонтальную ориентацию, компоненты располагаются горизонтально, иначе — вертикально. При горизонтальной ориентации, если свойствоComponentOrientationконтейнера задает направление слева направо, компоненты располагаются слева направо, иначе — справа налево. При вертикальной ориентации компоненты всегда располагаются сверху вниз. -
PAGE_AXIS— компоненты располагаются так же, как строки текста на странице, в соответствии со свойствомComponentOrientationконтейнера. Если свойствоComponentOrientationконтейнера задает горизонтальную ориентацию, компоненты располагаются вертикально, иначе — горизонтально. При горизонтальной ориентации, если свойствоComponentOrientationконтейнера задает направление слева направо, компоненты располагаются слева направо, иначе — справа налево. При вертикальной ориентации компоненты всегда располагаются сверху вниз.
При любом направлении компоненты располагаются в том же порядке, в котором они были добавлены в контейнер.
BoxLayout пытается располагать компоненты с предпочтительной шириной (при горизонтальной компоновке) или высотой (при вертикальной компоновке).
При горизонтальной компоновке, если высота компонентов различается, BoxLayout пытается сделать все компоненты такими же высокими, как самый высокий компонент. Если это невозможно для конкретного компонента, BoxLayout выравнивает его по вертикали в соответствии с выравниванием компонента по оси Y. По умолчанию выравнивание компонента по оси Y равно 0.5, то есть вертикальный центр этого компонента должен иметь ту же координату Y, что и вертикальные центры других компонентов с выравниванием по оси Y, равным 0.5.
Аналогичным образом, при вертикальной компоновке BoxLayout пытается сделать все компоненты в столбце такими же широкими, как самый широкий компонент. Если это не удается, компоненты выравниваются по горизонтали в соответствии с их выравниванием по оси X. При компоновке PAGE_AXIS горизонтальное выравнивание выполняется относительно ведущего края компонента. Иными словами, значение выравнивания по оси X, равное 0.0, означает левый край компонента, если свойство ComponentOrientation контейнера задает направление слева направо, и правый край компонента в противном случае.
Вместо непосредственного использования BoxLayout многие программы используют класс Box. Класс Box — это облегченный контейнер, использующий менеджер компоновки BoxLayout. Он также предоставляет удобные методы, помогающие эффективно использовать BoxLayout. Добавление компонентов в несколько вложенных контейнеров Box — эффективный способ добиться нужного расположения.
Дополнительную информацию и примеры см. в разделе Как использовать BoxLayout руководства Учебник по Java.
Предупреждение: Сериализованные объекты этого класса несовместимы с будущими выпусками Swing. Текущая поддержка сериализации предназначена для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакете java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.
- Начиная с:
- 1.2
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
LINE_AXIS |
Указывает, что компоненты должны располагаться в направлении строки текста, определяемом свойством ComponentOrientation целевого контейнера. |
static final int |
PAGE_AXIS |
Указывает, что компоненты должны располагаться в направлении, в котором строки идут по странице, определяемом свойством ComponentOrientation целевого контейнера. |
static final int |
X_AXIS |
Указывает, что компоненты должны располагаться слева направо. |
static final int |
Y_AXIS |
Указывает, что компоненты должны располагаться сверху вниз. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BoxLayout |
Создает менеджер компоновки, который будет располагать компоненты вдоль заданной оси. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addLayoutComponent |
Этот класс не использует данный метод. |
void |
addLayoutComponent |
Этот класс не использует данный метод. |
final int |
getAxis() |
Возвращает ось, вдоль которой располагались компоненты. |
float |
getLayoutAlignmentX |
Возвращает выравнивание контейнера по оси X. |
float |
getLayoutAlignmentY |
Возвращает выравнивание контейнера по оси Y. |
final Container |
getTarget() |
Возвращает контейнер, использующий этот менеджер компоновки. |
void |
invalidateLayout |
Указывает, что дочерний компонент изменил сведения, связанные с компоновкой, поэтому все кэшированные вычисления следует сбросить. |
void |
layoutContainer |
Вызывается AWT, когда необходимо выполнить компоновку указанного контейнера. |
Dimension |
maximumLayoutSize |
Возвращает максимальные размеры, которые целевой контейнер может использовать для компоновки содержащихся в нем компонентов. |
Dimension |
minimumLayoutSize |
Возвращает минимальные размеры, необходимые для компоновки компонентов, содержащихся в указанном целевом контейнере. |
Dimension |
preferredLayoutSize |
Возвращает предпочтительные размеры этой компоновки с учетом компонентов в указанном целевом контейнере. |
void |
removeLayoutComponent |
Этот класс не использует данный метод. |
Подробное описание полей
X_AXIS
public static final int X_AXIS
- См. также:
Y_AXIS
public static final int Y_AXIS
- См. также:
LINE_AXIS
public static final int LINE_AXIS
ComponentOrientation целевого контейнера.- См. также:
PAGE_AXIS
public static final int PAGE_AXIS
ComponentOrientation целевого контейнера.- См. также:
Подробное описание конструкторов
BoxLayout
@ConstructorProperties({"target","axis"}) public BoxLayout(Container target, int axis) - Параметры:
-
target— контейнер, для которого нужно выполнить компоновку -
axis— ось, вдоль которой нужно расположить компоненты. Допустимые значения:BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.LINE_AXISилиBoxLayout.PAGE_AXIS - Выбрасывает:
-
AWTError— если значениеaxisнедопустимо
Подробное описание методов
getTarget
public final Container getTarget()
- Возвращает:
- контейнер, использующий этот менеджер компоновки
- Начиная с:
- 1.6
getAxis
public final int getAxis()
BoxLayout.X_AXIS, BoxLayout.Y_AXIS,
BoxLayout.LINE_AXIS или BoxLayout.PAGE_AXIS
- Возвращает:
- ось, вдоль которой располагались компоненты
- Начиная с:
- 1.6
invalidateLayout
public void invalidateLayout(Container target)
Этот метод вызывается AWT при вызове метода invalidate для Container. Поскольку метод invalidate может вызываться асинхронно относительно потока обработки событий, этот метод также может вызываться асинхронно.
- Определено в:
-
invalidateLayoutв интерфейсеLayoutManager2 - Параметры:
-
target— затронутый контейнер - Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout
addLayoutComponent
public void addLayoutComponent(String name, Component comp)
- Определено в:
-
addLayoutComponentв интерфейсеLayoutManager - Параметры:
-
name— имя компонента -
comp— компонент
removeLayoutComponent
public void removeLayoutComponent(Component comp)
- Определено в:
-
removeLayoutComponentв интерфейсеLayoutManager - Параметры:
-
comp— компонент
addLayoutComponent
public void addLayoutComponent(Component comp, Object constraints)
- Определено в:
-
addLayoutComponentв интерфейсеLayoutManager2 - Параметры:
-
comp— компонент -
constraints— ограничения
preferredLayoutSize
public Dimension preferredLayoutSize(Container target)
- Определено в:
-
preferredLayoutSizeв интерфейсеLayoutManager - Параметры:
-
target— контейнер, для которого нужно выполнить компоновку - Возвращает:
- размеры >= 0 && <= Integer.MAX_VALUE
- Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout - См. также:
minimumLayoutSize
public Dimension minimumLayoutSize(Container target)
- Определено в:
-
minimumLayoutSizeв интерфейсеLayoutManager - Параметры:
-
target— контейнер, для которого нужно выполнить компоновку - Возвращает:
- размеры >= 0 && <= Integer.MAX_VALUE
- Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout - См. также:
maximumLayoutSize
public Dimension maximumLayoutSize(Container target)
- Определено в:
-
maximumLayoutSizeв интерфейсеLayoutManager2 - Параметры:
-
target— контейнер, для которого нужно выполнить компоновку - Возвращает:
- размеры >= 0 && <= Integer.MAX_VALUE
- Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout - См. также:
getLayoutAlignmentX
public float getLayoutAlignmentX(Container target)
- Определено в:
-
getLayoutAlignmentXв интерфейсеLayoutManager2 - Параметры:
-
target— контейнер - Возвращает:
- выравнивание >= 0.0f && <= 1.0f
- Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout
getLayoutAlignmentY
public float getLayoutAlignmentY(Container target)
- Определено в:
-
getLayoutAlignmentYв интерфейсеLayoutManager2 - Параметры:
-
target— контейнер - Возвращает:
- выравнивание >= 0.0f && <= 1.0f
- Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout
layoutContainer
public void layoutContainer(Container target)
- Определено в:
-
layoutContainerв интерфейсеLayoutManager - Параметры:
-
target— контейнер, для которого нужно выполнить компоновку - Выбрасывает:
-
AWTError— если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout
© 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/javax/swing/BoxLayout.html