Spec-Zone.ru › OpenJDK 21

Класс SpringLayout

java.lang.Object
javax.swing.SpringLayout
Все реализованные интерфейсы:
LayoutManager, LayoutManager2
public class SpringLayout extends Object implements LayoutManager2
A 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
См. также:
  • Spring
  • SpringLayout.Constraints

Краткое описание вложенных классов

Модификатор и тип Класс Описание
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(Component component, Object constraints)
Если constraints является экземпляром SpringLayout.Constraints, связывает ограничения с указанным компонентом.
void addLayoutComponent(String name, Component c)
Не оказывает никакого влияния, так как этот менеджер компоновки не использует строку для каждого компонента.
Spring getConstraint(String edgeName, Component c)
Возвращает пружину, контролирующую расстояние между указанной стороной компонента и верхней или левой стороной родителя.
SpringLayout.Constraints getConstraints(Component c)
Возвращает ограничения для указанного компонента.
float getLayoutAlignmentX(Container p)
Возвращает 0.5f (по центру).
float getLayoutAlignmentY(Container p)
Возвращает 0.5f (по центру).
void invalidateLayout(Container p)
Делает компоновку недействительной, указывая, что если менеджер компоновки кэшировал информацию, её следует игнорировать.
void layoutContainer(Container parent)
Компонует указанный контейнер.
Dimension maximumLayoutSize(Container parent)
Вычисляет максимальные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты.
Dimension minimumLayoutSize(Container parent)
Вычисляет минимальные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты.
Dimension preferredLayoutSize(Container parent)
Вычисляет предпочтительные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты.
void putConstraint(String e1, Component c1, int pad, String e2, Component c2)
Связывает сторону e1 компонента c1 со стороной e2 компонента c2, с фиксированным расстоянием между сторонами.
void putConstraint(String e1, Component c1, Spring s, String e2, Component c2)
Связывает сторону e1 компонента c1 со стороной e2 компонента c2.
void removeLayoutComponent(Component c)
Удаляет ограничения, связанные с указанным компонентом.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

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 - компонент, который необходимо разместить
Возвращает:
минимальные размеры контейнера
См. также:
  • LayoutManager.preferredLayoutSize(java.awt.Container)

preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
Описание скопировано из интерфейса: LayoutManager
Вычисляет предпочтительные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты.
Указано в:
preferredLayoutSize в интерфейсе LayoutManager
Параметры:
parent - контейнер, который необходимо разместить
Возвращает:
предпочтительные размеры контейнера
См. также:
  • LayoutManager.minimumLayoutSize(java.awt.Container)

maximumLayoutSize

public Dimension maximumLayoutSize(Container parent)
Описание скопировано из интерфейса: LayoutManager2
Вычисляет максимальные размеры для указанного контейнера, учитывая содержащиеся в нём компоненты.
Указано в:
maximumLayoutSize в интерфейсе LayoutManager2
Параметры:
parent - целевой контейнер
Возвращает:
максимальные размеры контейнера
См. также:
  • Component.getMaximumSize()
  • LayoutManager

addLayoutComponent

public void addLayoutComponent(Component component, Object constraints)
Если constraints является экземпляром SpringLayout.Constraints, то связывает ограничения с указанным компонентом.
Указано в:
addLayoutComponent в интерфейсе LayoutManager2
Параметры:
component - добавляемый компонент
constraints - ограничения компонента
См. также:
  • SpringLayout.Constraints

getLayoutAlignmentX

public float getLayoutAlignmentX(Container p)
Возвращает 0.5f (по центру).
Указано в:
getLayoutAlignmentX в интерфейсе LayoutManager2
Параметры:
p - целевой контейнер
Возвращает:
предпочтение выравнивания по оси X

getLayoutAlignmentY

public float getLayoutAlignmentY(Container p)
Возвращает 0.5f (по центру).
Указано в:
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(String, Component, Spring, String, Component)

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:
  • putConstraint(String, Component, int, String, Component)
  • NORTH
  • SOUTH
  • EAST
  • WEST
  • VERTICAL_CENTER
  • HORIZONTAL_CENTER
  • BASELINE

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:
  • NORTH
  • SOUTH
  • EAST
  • WEST
  • VERTICAL_CENTER
  • HORIZONTAL_CENTER
  • BASELINE

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

Spec-Zone.ru

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