public class SpringLayout extends Object implements LayoutManager2
SpringLayout
размечает дочерние элементы его связанного контейнера согласно ряду ограничений. См.SpringLayout
. Каждое ограничение, представленное a Spring
объект, управляет вертикалью или горизонтальным расстоянием между двумя компонентными краями. Края могут принадлежать любому дочернему элементу контейнера, или к контейнеру непосредственно. Например, допустимый width компонента может быть выражен, используя ограничение, которое управляет расстоянием между (оставленным) западом и восточными (правильными) краями компонента. Допустимые координаты y для компонента могут быть выражены, ограничивая расстояние между северным (главным) краем компонента и северным краем его контейнера.
Каждый дочерний элемент a SpringLayout
- у управляемого контейнера, так же как контейнера непосредственно, есть точно один набор ограничений, связанных с этим. Эти ограничения представляются a 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
class также обеспечивает методы фабрики для того, чтобы они создали другие виды пружин, включая пружины, которые зависят от других пружин.
В a SpringLayout
, позиция каждого края зависит от позиции только одного другого края. Если ограничение впоследствии добавляется, чтобы создать новую привязку для края, предыдущая привязка отбрасывается, и край остается зависящим от единственного края. Спрингс должен только быть присоединен между краями контейнера и его непосредственных дочерних элементов; поведение SpringLayout
когда подарено ограничения, соединяющие края компонентов от различных контейнеров (или внутренний или внешний), неопределено.
Отметьте: В отличие от многих менеджеров по расположению,SpringLayout
автоматически не устанавливает расположение компонентов, которыми оно управляет. Если Вы ручной код GUI, который используетSpringLayout
, не забудьте инициализировать компонентные расположения, ограничивая западные/восточные и северные/южные расположения.В зависимости от ограничений Вы используете, Вы, возможно, также должны установить размер контейнера явно.
Несмотря на простоту SpringLayout
, это может эмулировать поведение большинства других менеджеров по расположению. Для некоторых функций, таких как повреждение строки, обеспеченное FlowLayout
, Вы должны будете создать подкласс специального назначения Spring
class.
SpringLayout
также обеспечивает способ решить многие из трудных проблем расположения, которые не могут быть решены комбинациями вложения Box
es. Однако SpringLayout
почести LayoutManager2
заключите контракт правильно, и так может быть вложен с другими менеджерами по расположению - метод, который может быть предпочтительным для создания ограничений, подразумеваемых другими менеджерами по расположению.
Асимптотическая сложность работы расположения a SpringLayout
линейно в числе ограничений (и/или компоненты).
Предупреждение: Сериализированные объекты этого class не будут совместимыми с будущими выпусками Swing. Текущая поддержка сериализации является подходящей для краткосрочного хранения или RMI между приложениями, выполняющими ту же самую версию Swing. С 1.4, поддержка длительного хранения всего JavaBeansTM была добавлена к java.beans
пакет. Пожалуйста, см. XMLEncoder
.
Spring
, SpringLayout.Constraints
Модификатор и Тип | Класс и Описание |
---|---|
static class |
SpringLayout. Ограничения
A
Constraints объект содержит ограничения, которые управляют путем размер компонента и изменение позиции в контейнере, которым управляет a SpringLayout . |
Модификатор и Тип | Поле и Описание |
---|---|
static String |
БАЗОВАЯ ЛИНИЯ
Определяет базовую линию компонента.
|
static String |
ВОСТОК
Определяет правый край ограничительного прямоугольника компонента.
|
static String |
ВЫСОТА
Определяет height ограничительного прямоугольника компонента.
|
static String |
HORIZONTAL_CENTER
Определяет горизонтальный центр ограничительного прямоугольника компонента.
|
static String |
СЕВЕР
Определяет главный край ограничительного прямоугольника компонента.
|
static String |
ЮГ
Определяет базовый край ограничительного прямоугольника компонента.
|
static String |
VERTICAL_CENTER
Определяет вертикальный центр ограничительного прямоугольника компонента.
|
static String |
ЗАПАД
Определяет левый край ограничительного прямоугольника компонента.
|
static 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. Ограничения |
getConstraints(Component c)
Возвращает ограничения для указанного компонента.
|
float |
getLayoutAlignmentX(Container p)
Возвраты 0.5f (центрируемый).
|
float |
getLayoutAlignmentY(Container p)
Возвраты 0.5f (центрируемый).
|
void |
invalidateLayout(Container p)
Лишает законной силы расположение, указывая, что, если менеджер по расположению кэшировал информацию, это должно быть отброшено.
|
void |
layoutContainer(Container parent)
Размечает указанный контейнер.
|
Размерность |
maximumLayoutSize(Container parent)
Вычисляет максимальные размерности размера для указанного контейнера, учитывая компоненты, которые он содержит.
|
Размерность |
minimumLayoutSize(Container parent)
Вычисляет минимальные размерности размера для указанного контейнера, учитывая компоненты, которые он содержит.
|
Размерность |
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)
Удаляет ограничения, связанные с указанным компонентом.
|
public static final String NORTH
public static final String SOUTH
public static final String EAST
public static final String WEST
public static final String HORIZONTAL_CENTER
public static final String VERTICAL_CENTER
public static final String BASELINE
public static final String WIDTH
public static final String HEIGHT
public void addLayoutComponent(String name, Component c)
addLayoutComponent
в интерфейсе LayoutManager
name
- строка, которая будет связана с компонентомc
- компонент, который будет добавленpublic void removeLayoutComponent(Component c)
removeLayoutComponent
в интерфейсе LayoutManager
c
- компонент, удаляемый из контейнераpublic Dimension minimumLayoutSize(Container parent)
LayoutManager
minimumLayoutSize
в интерфейсе LayoutManager
parent
- компонент, который будет размеченLayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension preferredLayoutSize(Container parent)
LayoutManager
preferredLayoutSize
в интерфейсе LayoutManager
parent
- контейнер, который будет размеченLayoutManager.minimumLayoutSize(java.awt.Container)
public Dimension maximumLayoutSize(Container parent)
LayoutManager2
maximumLayoutSize
в интерфейсе LayoutManager2
Component.getMaximumSize()
, LayoutManager
public void addLayoutComponent(Component component, Object constraints)
constraints
экземпляр SpringLayout.Constraints
, связывает ограничения с указанным компонентом. addLayoutComponent
в интерфейсе LayoutManager2
component
- добавляемый компонентconstraints
- ограничения компонентаSpringLayout.Constraints
public float getLayoutAlignmentX(Container p)
getLayoutAlignmentX
в интерфейсе LayoutManager2
public float getLayoutAlignmentY(Container p)
getLayoutAlignmentY
в интерфейсе LayoutManager2
public void invalidateLayout(Container p)
LayoutManager2
invalidateLayout
в интерфейсе LayoutManager2
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)
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
. e1
- край зависимогоc1
- компонент зависимогоs
- пружина, соединяющаяся зависимый и привязкаe2
- край привязкиc2
- компонент привязкиputConstraint(String, Component, int, String, Component)
, NORTH
, SOUTH
, EAST
, WEST
, VERTICAL_CENTER
, HORIZONTAL_CENTER
, BASELINE
public SpringLayout.Constraints getConstraints(Component c)
GridBagLayout
getConstraints
метод, этот метод не клонирует ограничения. Если никакие ограничения не были связаны с этим компонентом, этот метод возвращает ограничительный объект значения по умолчанию, расположенный в 0,0 относительно Вставок родителя и его width/height ограниченный к минимуму, максимуму, и предпочел размеры компонента. Характеристики размера не замораживаются в то время, когда этот метод вызывают; вместо этого этот метод возвращает ограничительный объект, характеристики которого отслеживают характеристики компонента, как они изменяются.c
- компонент, ограничения которого будут возвращеныpublic Spring getConstraint(String edgeName, Component c)
SpringLayout
так, чтобы работа расположения всегда завершилась.edgeName
- должен быть один из SpringLayout.NORTH
, SpringLayout.SOUTH
, SpringLayout.EAST
, SpringLayout.WEST
, SpringLayout.VERTICAL_CENTER
, SpringLayout.HORIZONTAL_CENTER
или SpringLayout.BASELINE
c
- компонент, граничная пружина которого требуетсяNORTH
, SOUTH
, EAST
, WEST
, VERTICAL_CENTER
, HORIZONTAL_CENTER
, BASELINE
public void layoutContainer(Container parent)
LayoutManager
layoutContainer
в интерфейсе LayoutManager
parent
- контейнер, который будет размечен
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92