Класс BoxLayout

Все реализуемые интерфейсы:
LayoutManager, LayoutManager2, Serializable
Прямые известные подклассы:
DefaultMenuLayout
public class BoxLayout
extends Object
implements LayoutManager2, Serializable

Управляющий элемент макета, позволяющий размещать несколько компонентов по вертикали или горизонтали. Компоненты не будут переносить, поэтому, например, вертикальное расположение компонентов останется вертикальным при изменении размеров фрейма.

The following text describes this graphic.

Вложенность нескольких панелей с различными комбинациями горизонтального и вертикального расположения дает эффект, аналогичный GridBagLayout, но без сложности. Диаграмма показывает две панели, расположенные горизонтально, каждая из которых содержит 3 компонента, расположенных вертикально.

Управляющий элемент макета BoxLayout создается с параметром оси, определяющим тип выполняемого макета. Существует четыре варианта:

X_AXIS - Компоненты выстраиваются горизонтально слева направо.
Y_AXIS - Компоненты выстраиваются вертикально сверху вниз.
LINE_AXIS - Components are laid out the way words are laid out in a line, based on the container's ComponentOrientation property. If the container's ComponentOrientation is horizontal then components are laid out horizontally, otherwise they are laid out vertically. For horizontal orientations, if the container's ComponentOrientation is left to right then components are laid out left to right, otherwise they are laid out right to left. For vertical orientations components are always laid out from top to bottom.
PAGE_AXIS - Components are laid out the way text lines are laid out on a page, based on the container's ComponentOrientation property. If the container's ComponentOrientation is horizontal then components are laid out vertically, otherwise they are laid out horizontally. For horizontal orientations, if the container's ComponentOrientation is left to right then components are laid out left to right, otherwise they are laid out right to left. For vertical orientations components are always laid out from top to bottom.

Во всех направлениях компоненты выстраиваются в том же порядке, что и при добавлении в контейнер.

BoxLayout пытается расположить компоненты по их предпочтительным ширинам (для горизонтального макета) или высотам (для вертикального макета). Для горизонтального макета, если не все компоненты имеют одинаковую высоту, BoxLayout пытается сделать все компоненты высотой, равной наибольшей высоте компонента. Если это невозможно для конкретного компонента, BoxLayout выравнивает этот компонент по вертикали в соответствии с вертикальным выравниванием компонента. По умолчанию компонент имеет вертикальное выравнивание 0,5, что означает, что вертикальный центр компонента должен иметь одинаковую координату Y, что и вертикальные центры других компонентов с вертикальным выравниванием 0,5.

Аналогично, для вертикального макета BoxLayout пытается сделать все компоненты в столбце такой же ширины, как и самый широкий компонент. Если это не удается, он выравнивает их по горизонтали в соответствии с их горизонтальными выравниваниями. Для макета PAGE_AXIS горизонтальное выравнивание выполняется на основе ведущего края компонента. Другими словами, значение горизонтального выравнивания 0,0 означает левый край компонента, если ориентация контейнера ComponentOrientation слева направо, и это означает правый край компонента в противном случае.

Вместо непосредственного использования BoxLayout многие программы используют класс Box. Класс Box — это легкий контейнер, использующий BoxLayout. Он также предоставляет удобные методы, которые помогают вам эффективно использовать BoxLayout. Добавление компонентов в несколько вложенных ящиков — мощный способ получить нужное расположение.

Дополнительную информацию и примеры см. в Руководстве по использованию BoxLayout в Учебнике Java.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной и той же версией Swing. С версии 1.4 добавлена поддержка долгосрочного хранения всех JavaBeans™ в пакете java.beans. См. XMLEncoder.

С:
1.2
См. также:
Box, ComponentOrientation, JComponent.getAlignmentX(), JComponent.getAlignmentY(), Сериализованная форма

Поля

Модификатор и тип Поле Описание
static int LINE_AXIS

Указывает, что компоненты должны выстраиваться в направлении строки текста, определяемом свойством ComponentOrientation целевого контейнера.

static int PAGE_AXIS

Указывает, что компоненты должны выстраиваться в направлении, в котором строки текут по странице, определяемом свойством ComponentOrientation целевого контейнера.

static int X_AXIS

Указывает, что компоненты должны выстраиваться слева направо.

static int Y_AXIS

Указывает, что компоненты должны выстраиваться сверху вниз.

Конструкторы

Конструктор Описание
BoxLayout​(Container target, int axis)

Создает управляющий элемент макета, который будет выстраивать компоненты вдоль заданной оси.

Методы

Модификатор и тип Метод Описание
void addLayoutComponent​(Component comp, Object constraints)

Не используется в этом классе.

void addLayoutComponent​(String name, Component comp)

Не используется в этом классе.

int getAxis()

Возвращает ось, которая использовалась для выстраивания компонентов.

float getLayoutAlignmentX​(Container target)

Возвращает выравнивание по оси X для контейнера.

float getLayoutAlignmentY​(Container target)

Возвращает выравнивание по оси Y для контейнера.

Container getTarget()

Возвращает контейнер, который использует этот управляющий элемент макета.

void invalidateLayout​(Container target)

Указывает, что у дочернего элемента изменились данные, связанные с макетом, и поэтому все кэшированные вычисления должны быть сброшены.

void layoutContainer​(Container target)

Вызывается AWT, когда указанный контейнер должен быть сформирован.

Dimension maximumLayoutSize​(Container target)

Возвращает максимальные размеры, которые целевой контейнер может использовать для выстраивания содержащихся в нем компонентов.

Dimension minimumLayoutSize​(Container target)

Возвращает минимальные размеры, необходимые для выстраивания компонентов, содержащихся в указанном целевом контейнере.

Dimension preferredLayoutSize​(Container target)

Возвращает предпочтительные размеры для этого макета, учитывая компоненты в указанном целевом контейнере.

void removeLayoutComponent​(Component comp)

Не используется в этом классе.

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

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

Поля

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 у контейнера. Поскольку метод 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
См. также:
Container, minimumLayoutSize(java.awt.Container), maximumLayoutSize(java.awt.Container)

minimumLayoutSize

public Dimension minimumLayoutSize(Container target)

Возвращает минимальные размеры, необходимые для выравнивания компонентов, содержащихся в указанном целевом контейнере.

Унаследован от:
minimumLayoutSize в интерфейсе LayoutManager
Параметры:
target - контейнер, который нужно выровнять
Возвращает:
размеры >= 0 && <= Integer.MAX_VALUE
Исключения:
AWTError - если целевой объект не является контейнером, указанным в конструкторе BoxLayout
См. также:
preferredLayoutSize(java.awt.Container), maximumLayoutSize(java.awt.Container)

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)

Возвращает максимальные размеры, которые целевой контейнер может использовать для выравнивания содержащихся в нём компонентов.

Унаследован от:
maximumLayoutSize в интерфейсе LayoutManager2
Параметры:
target - контейнер, который нужно выровнять
Возвращает:
размеры >= 0 && <= Integer.MAX_VALUE
Исключения:
AWTError - если целевой объект не является контейнером, указанным в конструкторе BoxLayout
См. также:
preferredLayoutSize(java.awt.Container), minimumLayoutSize(java.awt.Container)

getLayoutAlignmentX

public float getLayoutAlignmentX(Container target)

Возвращает выравнивание по оси X для контейнера. Если коробка горизонтальная, возвращается значение по умолчанию. В противном случае возвращается выравнивание, необходимое для размещения дочерних элементов по оси X.

Унаследован от:
getLayoutAlignmentX в интерфейсе LayoutManager2
Параметры:
target - контейнер
Возвращает:
выравнивание >= 0.0f && <= 1.0f
Исключения:
AWTError - если целевой объект не является контейнером, указанным в конструкторе BoxLayout

getLayoutAlignmentY

public float getLayoutAlignmentY(Container target)

Возвращает выравнивание по оси Y для контейнера. Если коробка вертикальная, возвращается значение по умолчанию. В противном случае возвращается выравнивание, необходимое для размещения дочерних элементов по оси Y.

Унаследован от:
getLayoutAlignmentY в интерфейсе LayoutManager2
Параметры:
target - контейнер
Возвращает:
выравнивание >= 0.0f && <= 1.0f
Исключения:
AWTError - если целевой объект не является контейнером, указанным в конструкторе BoxLayout

layoutContainer

public void layoutContainer(Container target)

Вызывается AWT, когда необходимо выровнять указанный контейнер.

Унаследован от:
layoutContainer в интерфейсе LayoutManager
Параметры:
target - контейнер для выравнивания
Исключения:
AWTError - если целевой объект не является контейнером, указанным в конструкторе BoxLayout

© 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/javax/swing/BoxLayout.html

Spec-Zone .ru
спецификации, руководства, описания, API