Spec-Zone.ru › OpenJDK 17

Класс SpringLayout

java.lang.Object
javax.swing.SpringLayout
Все реализуемые интерфейсы:
LayoutManager, LayoutManager2
public class SpringLayout extends Object implements LayoutManager2
A SpringLayout размещает дочерние элементы своего связанного контейнера в соответствии с набором ограничений. См. Как использовать SpringLayout в Java Tutorial для примеров использования SpringLayout.

Каждое ограничение, представленное объектом Spring, управляет вертикальным или горизонтальным расстоянием между двумя границами компонента. Границы могут принадлежать любому дочернему элементу контейнера или самому контейнеру. Например, допустимая ширина компонента может быть выражена с помощью ограничения, которое контролирует расстояние между западной (левой) и восточной (правой) границами компонента. Допустимые координаты y компонента могут быть выражены, ограничив расстояние между северной (верхней) границей компонента и северной границей его контейнера.

Каждый дочерний элемент контейнера, управляемого SpringLayout, а также сам контейнер, имеет ровно один набор ограничений, связанных с ним. Эти ограничения представлены объектом SpringLayout.Constraints. По умолчанию, SpringLayout создает ограничения, которые делают их связанный компонент имеющим минимальные, предпочтительные и максимальные размеры, возвращаемые методами компонента Component.getMinimumSize(), Component.getPreferredSize() и Component.getMaximumSize(). Позиции x и y изначально не ограничены, поэтому до тех пор, пока вы их не ограничите, Component будет расположен в 0,0 относительно 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 также предоставляет способ решения многих сложных проблем компоновки, которые невозможно решить с помощью вложенных комбинаций Box. Тем не менее, SpringLayout правильно соблюдает контракт LayoutManager2 и поэтому может быть вложен с другими менеджерами компоновки — подход, который может быть предпочтительнее создания ограничений, подразумеваемых другими менеджерами компоновки.

Асимптотическая сложность операции компоновки SpringLayout линейна относительно количества ограничений (и/или компонентов).

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

С момента:
1.4
См. также:
  • Spring
  • SpringLayout.Constraints

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

Modifier and Type Class Description
static class  SpringLayout.Constraints
Объект Constraints содержит ограничения, определяющие, как изменяются размер и положение компонента в контейнере, управляемом SpringLayout.

Краткое описание полей

Modifier and Type Field Description
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
Указывает ширину прямоугольника, ограничивающего компонент.

Краткое описание конструкторов

Constructor Description
SpringLayout()
Создаёт новый SpringLayout.

Краткое описание методов

Modifier and Type Method Description
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
Определяет горизонтальный центр прямоугольника области компонент.
Since:
1.6
См. также:
  • Значения постоянных полей

VERTICAL_CENTER

public static final String VERTICAL_CENTER
Определяет вертикальный центр прямоугольника области компонент.
Since:
1.6
См. также:
  • Значения постоянных полей

BASELINE

public static final String BASELINE
Определяет линию основания компонента.
Since:
1.6
См. также:
  • Значения постоянных полей

WIDTH

public static final String WIDTH
Определяет ширину прямоугольника области компонент.
Since:
1.6
См. также:
  • Значения постоянных полей

HEIGHT

public static final String HEIGHT
Определяет высоту прямоугольника области компонент.
Since:
1.6
См. также:
  • Значения постоянных полей

Подробное описание конструкторов

SpringLayout

public SpringLayout()
Создает новый SpringLayout.

Подробное описание методов

addLayoutComponent

public void addLayoutComponent(String name, Component c)
Не оказывает никакого влияния, так как этот менеджер компоновки не использует строку для каждого компонента.
Specified by:
addLayoutComponent в интерфейсе LayoutManager
Parameters:
name - строка, которая должна быть ассоциирована с компонентом
c - компонент, который должен быть добавлен

removeLayoutComponent

public void removeLayoutComponent(Component c)
Удаляет ограничения, связанные с указанным компонентом.
Specified by:
removeLayoutComponent в интерфейсе LayoutManager
Parameters:
c - компонент, который удаляется из контейнера

minimumLayoutSize

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

preferredLayoutSize

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

maximumLayoutSize

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

addLayoutComponent

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

getLayoutAlignmentX

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

getLayoutAlignmentY

public float getLayoutAlignmentY(Container p)
Возвращает 0.5f (центрировано).
Specified by:
getLayoutAlignmentY в интерфейсе LayoutManager2
Parameters:
p - целевой контейнер
Returns:
предпочтение выравнивания по оси Y

invalidateLayout

public void invalidateLayout(Container p)
Описание скопировано из интерфейса: LayoutManager2
Делает компоновку недействительной, указывая, что если менеджер компоновки кэшировал информацию, то её следует удалить.
Specified by:
invalidateLayout в интерфейсе LayoutManager2
Parameters:
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 - компонент якоря
См. также:
  • putConstraint(String, Component, Spring, String, Component)
END_OF_DOCUMENT_MARKER

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 in interface LayoutManager
Parameters:
parent - контейнер, который необходимо разместить

© 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/SpringLayout.html

Spec-Zone.ru

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