public class SpringLayout extends Object implements LayoutManager2
SpringLayout размечает дочерние элементы его связанного контейнера согласно ряду ограничений. См. в Учебном руководстве по Java для примеров использования 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 также обеспечивает способ решить многие из трудных проблем расположения, которые не могут быть решены комбинациями вложения Boxes. Однако 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 в интерфейсе LayoutManagername - строка, которая будет связана с компонентомc - компонент, который будет добавленpublic void removeLayoutComponent(Component c)
removeLayoutComponent в интерфейсе LayoutManagerc - компонент, удаляемый из контейнераpublic Dimension minimumLayoutSize(Container parent)
LayoutManagerminimumLayoutSize в интерфейсе LayoutManagerparent - компонент, который будет размеченLayoutManager.preferredLayoutSize(java.awt.Container)public Dimension preferredLayoutSize(Container parent)
LayoutManagerpreferredLayoutSize в интерфейсе LayoutManagerparent - контейнер, который будет размеченLayoutManager.minimumLayoutSize(java.awt.Container)public Dimension maximumLayoutSize(Container parent)
LayoutManager2maximumLayoutSize в интерфейсе LayoutManager2Component.getMaximumSize(), LayoutManagerpublic void addLayoutComponent(Component component, Object constraints)
constraints экземпляр SpringLayout.Constraints, связывает ограничения с указанным компонентом. addLayoutComponent в интерфейсе LayoutManager2component - добавляемый компонентconstraints - ограничения компонентаSpringLayout.Constraintspublic float getLayoutAlignmentX(Container p)
getLayoutAlignmentX в интерфейсе LayoutManager2public float getLayoutAlignmentY(Container p)
getLayoutAlignmentY в интерфейсе LayoutManager2public void invalidateLayout(Container p)
LayoutManager2invalidateLayout в интерфейсе LayoutManager2public 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, BASELINEpublic 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.BASELINEc - компонент, граничная пружина которого требуетсяNORTH, SOUTH, EAST, WEST, VERTICAL_CENTER, HORIZONTAL_CENTER, BASELINEpublic void layoutContainer(Container parent)
LayoutManagerlayoutContainer в интерфейсе LayoutManagerparent - контейнер, который будет размечен
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92