Spec-Zone.ru › OpenJDK 17

Класс 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 выравнивает этот компонент вертикально в соответствии с вертикальным выравниванием компонента. По умолчанию вертикальное выравнивание компонента равно 0,5, что означает, что вертикальный центр компонента должен иметь ту же координату Y, что и вертикальные центры других компонентов с вертикальным выравниванием 0,5.

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

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

Для получения дополнительной информации и примеров см. Как использовать BoxLayout, раздел в Java Tutorial.

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

Since:
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

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/BoxLayout.html

Spec-Zone.ru

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