Класс SpringLayout
- Все реализованные интерфейсы:
-
LayoutManager,LayoutManager2
public class SpringLayout extends Object implements LayoutManager2
Каждое ограничение, представленное объектом Spring, управляет вертикальным или горизонтальным расстоянием между двумя границами компонента. Границы могут принадлежать любому дочернему компоненту контейнера или самому контейнеру. Например, допустимая ширина компонента может быть выражена с помощью ограничения, управляющего расстоянием между западной (левой) и восточной (правой) границами компонента. Допустимые значения координат y компонента могут быть выражены путем ограничения расстояния между северной (верхней) границей компонента и северной границей его контейнера.
Каждый дочерний компонент контейнера, управляемого управляющим компоновкой, а также сам контейнер, имеет ровно один набор ограничений, связанных с ним. Эти ограничения представлены объектом SpringLayout.Constraints. По умолчанию управляющий компоновкой создаёт ограничения, которые устанавливают для соответствующего компонента минимальные, предпочтительные и максимальные размеры, возвращаемые методами компонента Component.getMinimumSize(), Component.getPreferredSize() и Component.getMaximumSize(). Позиции x и y изначально не ограничены, поэтому до тех пор, пока их не ограничите, компонент будет расположен в координатах 0,0 относительно верхнего левого угла родительского контейнера.
Вы можете изменить ограничения компонента несколькими способами. Вы можете использовать один из методов putConstraint, чтобы установить пружину, связывающую границы двух компонентов в одном контейнере. Или вы можете получить соответствующий объект ограничений с помощью getConstraints и затем изменить одну или несколько пружин. Или вы можете получить пружину для определённой границы компонента с помощью getConstraint и изменить её. Вы также можете связать свой собственный объект ограничений с компонентом, указав объект ограничений при добавлении компонента в контейнер (используя Container.add(Component, Object)).
Объект Spring, представляющий каждое ограничение, имеет минимальное, предпочтительное, максимальное и текущее значение. Текущее значение пружины находится где-то между минимальным и максимальным значениями, в соответствии со формулой, указанной в описании метода Spring.sum(javax.swing.Spring, javax.swing.Spring). Когда минимальное, предпочтительное и максимальное значения одинаковы, текущее значение всегда равно им; эта жёсткая пружина называется «стойкой». Вы можете создать стойки, используя фабричный метод Spring.constant(int). Класс Spring также предоставляет фабричные методы для создания других типов пружин, включая пружины, зависящие от других пружин.
В управляющем компоновкой положение каждой границы зависит от положения только одной другой границы. Если ограничение впоследствии добавляется для создания нового связывания для границы, предыдущее связывание отбрасывается, и граница остаётся связанной с единственной границей. Пружины должны подключаться только между границами контейнера и его непосредственных дочерних компонентов; поведение управляющего компоновкой при предоставлении ограничений, связывающих границы компонентов из разных контейнеров (внутренних или внешних), не определено.
SpringLayout по сравнению с другими управляющими компоновкой
Примечание: В отличие от многих управляющих компоновкой,SpringLayoutне автоматически устанавливает положение управляемых им компонентов. Если вы вручную кодируете интерфейс пользователя, использующийSpringLayout, не забудьте инициализировать положения компонентов, установив ограничения по запад/восток и север/юг.В зависимости от используемых вами ограничений, вам также может потребоваться явно задать размеры контейнера.
Несмотря на простоту SpringLayout, он может эмулировать поведение большинства других управляющих компоновкой. Для некоторых функций, таких как перенос строк, обеспечиваемый FlowLayout, вам потребуется создать специализированный подкласс класса Spring.
SpringLayout также предоставляет способ решения многих сложных проблем компоновки, которые невозможно решить с помощью вложенных комбинаций Box. При этом SpringLayout правильно соблюдает контракт LayoutManager2 и поэтому может быть вложен с другими управляющими компоновкой, что может быть предпочтительнее, чем создание ограничений, предполагаемых другими управляющими компоновкой.
Асимптотическая сложность операции компоновки SpringLayout линейна по числу ограничений (и/или компонентов).
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной и той же версией Swing. С версии 1.4 добавлена поддержка долгосрочного хранения всех JavaBeans в пакет java.beans. Пожалуйста, обратитесь к XMLEncoder.
- С:
- 1.4
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
SpringLayout.Constraints |
Объект Constraints хранит ограничения, определяющие, как изменяются размер и положение компонента в контейнере, управляемом SpringLayout. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
BASELINE |
Указывает базовую линию компонента. |
static final String |
EAST |
Указывает правую границу области компонента. |
static final String |
HEIGHT |
Указывает высоту области компонента. |
static final String |
HORIZONTAL_CENTER |
Указывает горизонтальный центр области компонента. |
static final String |
NORTH |
Указывает верхнюю границу области компонента. |
static final String |
SOUTH |
Указывает нижнюю границу области компонента. |
static final String |
VERTICAL_CENTER |
Указывает вертикальный центр области компонента. |
static final String |
WEST |
Указывает левую границу области компонента. |
static final String |
WIDTH |
Указывает ширину области компонента. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SpringLayout() |
Создает новый SpringLayout. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addLayoutComponent |
Если constraints является экземпляром SpringLayout.Constraints, связывает ограничения с указанным компонентом. |
void |
addLayoutComponent |
Не имеет эффекта, так как этот менеджер компоновки не использует строку для каждого компонента. |
Spring |
getConstraint |
Возвращает пружину, контролирующую расстояние между указанным краем компонента и верхним или левым краем его родителя. |
SpringLayout.Constraints |
getConstraints |
Возвращает ограничения для указанного компонента. |
float |
getLayoutAlignmentX |
Возвращает 0.5f (по центру). |
float |
getLayoutAlignmentY |
Возвращает 0.5f (по центру). |
void |
invalidateLayout |
Делает компоновку недействительной, указывая, что если менеджер компоновки кэшировал информацию, он должен её отбросить. |
void |
layoutContainer |
Компонует указанный контейнер. |
Dimension |
maximumLayoutSize |
Вычисляет максимальные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты. |
Dimension |
minimumLayoutSize |
Вычисляет минимальные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты. |
Dimension |
preferredLayoutSize |
Вычисляет предпочтительные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты. |
void |
putConstraint |
Связывает край e1 компонента c1 с краем e2 компонента c2 с фиксированным расстоянием между ними. |
void |
putConstraint |
Связывает край e1 компонента c1 с краем e2 компонента c2. |
void |
removeLayoutComponent |
Удаляет ограничения, связанные с указанным компонентом. |
Подробное описание полей
NORTH
public static final String NORTH
- См. также:
SOUTH
public static final String SOUTH
- См. также:
EAST
public static final String EAST
- См. также:
WEST
public static final String WEST
- См. также:
HORIZONTAL_CENTER
public static final String HORIZONTAL_CENTER
- С:
- 1.6
- См. также:
VERTICAL_CENTER
public static final String VERTICAL_CENTER
- С:
- 1.6
- См. также:
BASELINE
public static final String BASELINE
- С:
- 1.6
- См. также:
WIDTH
public static final String WIDTH
- С:
- 1.6
- См. также:
HEIGHT
public static final String HEIGHT
- С:
- 1.6
- См. также:
Подробное описание конструкторов
SpringLayout
public SpringLayout()
SpringLayout.Подробное описание методов
addLayoutComponent
public void addLayoutComponent(String name, Component c)
- Указано в:
-
addLayoutComponentв интерфейсеLayoutManager - Параметры:
-
name- строка, которая будет связана с компонентом -
c- компонент, который будет добавлен
removeLayoutComponent
public void removeLayoutComponent(Component c)
- Указано в:
-
removeLayoutComponentв интерфейсеLayoutManager - Параметры:
-
c- компонент, удаляемый из контейнера
minimumLayoutSize
public Dimension minimumLayoutSize(Container parent)
LayoutManager- Указано в:
-
minimumLayoutSizeв интерфейсеLayoutManager - Параметры:
-
parent- компонент для компоновки - Возвращает:
- минимальный размер контейнера
- См. также:
preferredLayoutSize
public Dimension preferredLayoutSize(Container parent)
LayoutManager- Указано в:
-
preferredLayoutSizeв интерфейсеLayoutManager - Параметры:
-
parent- контейнер для компоновки - Возвращает:
- предпочтительные размеры контейнера
- См. также:
maximumLayoutSize
public Dimension maximumLayoutSize(Container parent)
LayoutManager2- Указано в:
-
maximumLayoutSizeв интерфейсеLayoutManager2 - Параметры:
-
parent- целевой контейнер - Возвращает:
- максимальный размер контейнера
- См. также:
addLayoutComponent
public void addLayoutComponent(Component component, Object constraints)
constraints является экземпляром класса SpringLayout.Constraints, связывает ограничения с указанным компонентом.- Указано в:
-
addLayoutComponentв интерфейсеLayoutManager2 - Параметры:
-
component- добавляемый компонент -
constraints- ограничения компонента - См. также:
getLayoutAlignmentX
public float getLayoutAlignmentX(Container p)
- Указано в:
-
getLayoutAlignmentXв интерфейсеLayoutManager2 - Параметры:
-
p- целевой контейнер - Возвращает:
- предпочтение выравнивания по оси x
getLayoutAlignmentY
public float getLayoutAlignmentY(Container p)
- Указано в:
-
getLayoutAlignmentYв интерфейсеLayoutManager2 - Параметры:
-
p- целевой контейнер - Возвращает:
- предпочтение выравнивания по оси y
invalidateLayout
public void invalidateLayout(Container p)
LayoutManager2- Указано в:
-
invalidateLayoutв интерфейсеLayoutManager2 - Параметры:
-
p- целевой контейнер
putConstraint
public void putConstraint(String e1, Component c1, int pad, String e2, Component c2)
e1 компонента c1 с краем e2 компонента c2, с фиксированным расстоянием между краями. Данное ограничение вызовет назначение
value(e1, c1) = value(e2, c2) + pad во всех последующих операциях выравнивания.- Parameters:
-
e1- край зависимого элемента -
c1- компонент зависимого элемента -
pad- фиксированное расстояние между зависимым и якорным элементами -
e2- край якорного элемента -
c2- компонент якорного элемента - See Also:
putConstraint
public void putConstraint(String e1, Component c1, Spring s, String e2, Component c2)
e1 компонента c1 с краем e2 компонента c2. По мере изменения значения края (e2, c2), край (e1, c1) будет вычисляться, используя (весеннее) суммирование (e2, c2) и s. Каждый край должен иметь одно из следующих значений: SpringLayout.NORTH, SpringLayout.SOUTH, SpringLayout.EAST, SpringLayout.WEST, SpringLayout.VERTICAL_CENTER, SpringLayout.HORIZONTAL_CENTER или SpringLayout.BASELINE.- Parameters:
-
e1- край зависимого элемента -
c1- компонент зависимого элемента -
s- пружина, связывающая зависимый и якорный элементы -
e2- край якорного элемента -
c2- компонент якорного элемента - See Also:
getConstraints
public SpringLayout.Constraints getConstraints(Component c)
GridBagLayout getConstraints, данный метод не клонирует ограничения. Если с этим компонентом не ассоциированы ограничения, этот метод возвращает объект ограничений по умолчанию, расположенный в координатах 0,0 относительно отступов родительского элемента, а его ширина/высота ограничены минимальными, максимальными и предпочтительными размерами компонента. Характеристики размера не замораживаются в момент вызова этого метода; вместо этого метод возвращает объект ограничений, характеристики которого отслеживают характеристики компонента по мере их изменения.- Parameters:
-
c- компонент, для которого требуется получить ограничения - Returns:
- ограничения для указанного компонента
getConstraint
public Spring getConstraint(String edgeName, Component c)
SpringLayout, чтобы операция выравнивания всегда завершалась.- Parameters:
-
edgeName- должно быть одним изSpringLayout.NORTH,SpringLayout.SOUTH,SpringLayout.EAST,SpringLayout.WEST,SpringLayout.VERTICAL_CENTER,SpringLayout.HORIZONTAL_CENTERилиSpringLayout.BASELINE -
c- компонент, для которого требуется пружина края - Returns:
- прокси для пружины, управляющей расстоянием между указанным краем и верхним или левым краем его родительского элемента
- See Also:
layoutContainer
public void layoutContainer(Container parent)
LayoutManager- Specified by:
-
layoutContainerв интерфейсеLayoutManager - Parameters:
-
parent- контейнер для выравнивания
© 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/SpringLayout.html