Spec-Zone.ru › OpenJDK 25

Класс 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 контейнера задает горизонтальную ориентацию, компоненты располагаются горизонтально, иначе — вертикально. При горизонтальной ориентации, если свойство 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
См. также:
  • 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)
Этот класс не использует данный метод.

Методы, объявленные в классе 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 для 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
См. также:
  • Container
  • minimumLayoutSize(Container)
  • maximumLayoutSize(Container)

minimumLayoutSize

public Dimension minimumLayoutSize(Container target)
Возвращает минимальные размеры, необходимые для компоновки компонентов, содержащихся в указанном целевом контейнере.
Определено в:
minimumLayoutSize в интерфейсе LayoutManager
Параметры:
target — контейнер, для которого нужно выполнить компоновку
Возвращает:
размеры >= 0 && <= Integer.MAX_VALUE
Выбрасывает:
AWTError — если целевой контейнер не совпадает с контейнером, указанным в конструкторе BoxLayout
См. также:
  • preferredLayoutSize(Container)
  • maximumLayoutSize(Container)

maximumLayoutSize

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/javax/swing/BoxLayout.html

Spec-Zone.ru

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