Spec-Zone.ru › OpenJDK 21

Класс 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, что означает, что вертикальный центр компонента должен иметь ту же вертикальную координату, что и вертикальные центры других компонентов с вертикальным выравниванием 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 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 для 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(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, 2023, 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/21/docs/api/java.desktop/javax/swing/BoxLayout.html

Spec-Zone.ru

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