Spec-Zone.ru › OpenJDK 24

Класс BoxLayout

java.lang.Object
javax.swing.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 - Компоненты выстраиваются так же, как слова в строке, на основе свойства ComponentOrientation контейнера. Если ориентация контейнера горизонтальная, компоненты выстраиваются горизонтально, в противном случае они выстраиваются вертикально. Для горизонтальной ориентации, если свойство ComponentOrientation контейнера слева направо, компоненты выстраиваются слева направо, в противном случае они выстраиваются справа налево. Для вертикальной ориентации компоненты всегда выстраиваются сверху вниз.
  • PAGE_AXIS - Компоненты выстраиваются так же, как строки текста на странице, на основе свойства ComponentOrientation контейнера. Если ориентация контейнера горизонтальная, компоненты выстраиваются вертикально, в противном случае они выстраиваются горизонтально. Для горизонтальной ориентации, если свойство ComponentOrientation контейнера слева направо, компоненты выстраиваются слева направо, в противном случае они выстраиваются справа налево. Для вертикальной ориентации компоненты всегда выстраиваются сверху вниз.

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

BoxLayout пытается разместить компоненты в соответствии с их предпочтительными ширинами (для горизонтальной компоновки) или высотами (для вертикальной компоновки).

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

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

Вместо непосредственного использования 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 final int LINE_AXIS
Указывает, что компоненты должны выстраиваться в направлении строки текста, определяемом свойством целевого контейнера ComponentOrientation.
static final int PAGE_AXIS
Указывает, что компоненты должны выстраиваться в направлении потока строк по странице, определяемом свойством целевого контейнера ComponentOrientation.
static final int X_AXIS
Указывает, что компоненты должны выстраиваться слева направо.
static final int Y_AXIS
Указывает, что компоненты должны выстраиваться сверху вниз.

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

Конструктор Описание
BoxLayout(Container target, int axis)
Создает управляющий компоновкой, который будет выстраивать компоненты по заданной оси.

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

Модификатор и тип Метод Описание
void addLayoutComponent(Component comp, Object constraints)
Не используется в этом классе.
void addLayoutComponent(String name, Component comp)
Не используется в этом классе.
final int getAxis()
Возвращает ось, которая использовалась для выстраивания компонентов.
float getLayoutAlignmentX(Container target)
Возвращает выравнивание по оси X для контейнера.
float getLayoutAlignmentY(Container target)
Возвращает выравнивание по оси Y для контейнера.
final 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
END_OF_DOCUMENT_MARKER

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/BoxLayout.html

Spec-Zone.ru

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