Класс SpringLayout
- Все реализованные интерфейсы:
-
LayoutManager,LayoutManager2
public class SpringLayout extends Object implements LayoutManager2
SpringLayout размещает потомков своего связанного контейнера в соответствии с набором ограничений. См. Как использовать SpringLayout в Руководстве по Java для примеров использования SpringLayout. Каждое ограничение, представленное объектом Spring, контролирует вертикальное или горизонтальное расстояние между двумя границами компонента. Границы могут принадлежать любому потомку контейнера или самому контейнеру. Например, допустимую ширину компонента можно выразить, используя ограничение, которое контролирует расстояние между западной (левой) и восточной (правой) границами компонента. Допустимые координаты y для компонента можно выразить, ограничив расстояние между северной (верхней) границей компонента и северной границей его контейнера.
Каждый потомок контейнера, управляемого SpringLayout, а также сам контейнер, имеет ровно один набор ограничений, связанных с ним. Эти ограничения представлены объектом SpringLayout.Constraints. По умолчанию SpringLayout создает ограничения, которые заставляют их связанный компонент иметь минимальные, предпочтительные и максимальные размеры, возвращаемые методами компонента Component.getMinimumSize(), Component.getPreferredSize() и Component.getMaximumSize(). Позиции x и y изначально не ограничены, поэтому до тех пор, пока вы их не ограничите, компонент будет размещён в координатах 0,0 относительно Component родительского Insets Container.
Вы можете изменить ограничения компонента несколькими способами. Вы можете использовать один из методов putConstraint для создания пружины, связывающей грани двух компонентов в одном контейнере. Или вы можете получить соответствующий объект SpringLayout.Constraints с помощью getConstraints и затем изменить одну или несколько его пружин. Или вы можете получить пружину для определённой грани компонента с помощью getConstraint и изменить её. Вы также можете связать свой собственный объект SpringLayout.Constraints с компонентом, указав объект ограничений при добавлении компонента в контейнер (используя Container.add(Component, Object)).
Объект Spring , представляющий каждое ограничение, имеет минимальное, предпочтительное, максимальное и текущее значение. Текущее значение пружины находится где-то между минимальным и максимальным значениями в соответствии со формулой, приведённой в описании метода Spring.sum(javax.swing.Spring, javax.swing.Spring). Когда минимальные, предпочтительные и максимальные значения одинаковы, текущее значение всегда равно им; такая жёсткая пружина называется стойкой. Вы можете создать стойки, используя фабричный метод Spring.constant(int). Класс Spring также предоставляет фабричные методы для создания других типов пружин, включая пружины, зависящие от других пружин.
В SpringLayout, положение каждой границы зависит от положения только одной другой границы. Если ограничение впоследствии добавляется для создания новой привязки к границе, предыдущая привязка отбрасывается, и граница остаётся зависимой от одной границы. Пружины должны подключаться только между границами контейнера и его непосредственными потомками; поведение SpringLayout при представлении ограничений, связывающих грани компонентов из разных контейнеров (внутренних или внешних), не определено.
SpringLayout по сравнению с другими менеджерами компоновки
Примечание: В отличие от многих менеджеров компоновки,SpringLayoutне устанавливает автоматически расположение управляемых им компонентов. Если вы вручную создаёте графический интерфейс пользователя, использующийSpringLayout, помните, что для инициализации расположения компонентов необходимо ограничить западные/восточные и северные/южные расположения.В зависимости от используемых ограничений, вам также может потребоваться явно указать размер контейнера.
Несмотря на простоту SpringLayout, он может эмулировать поведение большинства других менеджеров компоновки. Для некоторых функций, таких как перенос строк, предоставляемый FlowLayout, вам потребуется создать специальный подкласс класса Spring.
SpringLayout также предоставляет способ решения многих сложных проблем компоновки, которые невозможно решить с помощью вложенных комбинаций Boxes. Тем не менее, SpringLayout правильно обрабатывает контракт LayoutManager2 и поэтому может быть вложен с другими менеджерами компоновки — техника, которая может быть предпочтительнее создания ограничений, подразумеваемых другими менеджерами компоновки.
Асимптотическая сложность операции компоновки SpringLayout линейна по отношению к числу ограничений (и/или компонентов).
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. С версии 1.4 поддержка долгосрочного хранения всех JavaBeans была добавлена в пакет java.beans. Пожалуйста, см. XMLEncoder.
- Since:
- 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 во всех последующих операциях компоновки.- Параметры:
-
e1- край зависимого компонента -
c1- зависимый компонент -
pad- фиксированное расстояние между зависимым и опорным компонентами -
e2- край опорного компонента -
c2- опорный компонент - См. также:
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, 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/SpringLayout.html