Spec-Zone .ru
спецификации, руководства, описания, API
|
public class GroupLayout extends Object implements LayoutManager2
GroupLayout
a LayoutManager
это иерархически групповые компоненты, чтобы расположить их в a Container
. GroupLayout
предназначается для использования разработчиками, но может быть кодирован рукой также. Группировка делается экземплярами Group
class. GroupLayout
поддерживает два типа групп. Последовательная группа располагает свои дочерние элементы последовательно, один за другим. Параллельная группа выравнивает свои дочерние элементы одним из четырех способов. Каждая группа может содержать любое число элементов, где элемент является a Group
, Component
, или разрыв. Разрыв может считаться невидимым компонентом с минимумом, предпочтенным и максимальный размер. Кроме того, GroupLayout
поддерживает привилегированный разрыв, значение которого прибывает из LayoutStyle
.
Элементы подобны пружине. У каждого элемента есть диапазон как определено минимумом, предпочтенным и максимум. У разрывов есть или определенный разработчиком диапазон, или диапазон, определенный LayoutStyle
. Диапазон для Component
s определяется от Component
's getMinimumSize
, getPreferredSize
и getMaximumSize
методы. Кроме того, добавляя Component
s Вы может определить определенный диапазон, чтобы использовать вместо этого от компонента. Диапазон для a Group
определяется типом группы. A ParallelGroup
's диапазон максимум диапазонов его элементов. A SequentialGroup
's диапазон сумма диапазонов ее элементов.
GroupLayout
обработки каждая ось независимо. Таким образом, есть группа, представляющая горизонтальную ось, и группу, представляющую вертикальную ось. Горизонтальная группа ответственна за определение минимума, предпочтенного и максимального размера вдоль горизонтальной оси так же как устанавливание x и width компонентов, содержавшихся в этом. Вертикальная группа ответственна за определение минимума, предпочтенного и максимального размера вдоль вертикальной оси так же как устанавливание y и height компонентов, содержавшихся в этом. Каждый Component
должен существовать и в горизонтали и в вертикальной группе, иначе IllegalStateException
бросается во время расположения, или когда минимум, предпочтенный или максимальный размер, требуют.
Следующая схема показывает последовательную группу вдоль горизонтальной оси. Последовательная группа содержит три компонента. Параллельная группа использовалась вдоль вертикальной оси.
Укрепить ту каждую ось обрабатывается независимо, схема показывает диапазон каждой группы и элемента вдоль каждой оси. Диапазон каждого компонента был спроектирован на оси, и группы представляются в синем (горизонталь) и красные (вертикаль). Для удобочитаемости есть разрыв между каждым из элементов в последовательной группе.
Последовательная группа вдоль горизонтальной оси представляется как твердая синяя строка. Заметьте, что последовательная группа является суммой дочерних элементов, которые это содержит.
Вдоль вертикальной оси параллельная группа является максимумом height каждого из компонентов. Поскольку у всех трех компонентов есть тот же самый height, у параллельной группы есть тот же самый height.
Следующая схема показывает те же самые три компонента, но с параллельной группой вдоль горизонтальной оси и последовательной группой вдоль вертикальной оси.
Как c1
является самым большим из этих трех компонентов, параллельная группа измеряется к c1
. Как c2
и c3
меньше чем c1
они выровненные основанный на выравнивании, определенном для компонента (если определено) или выравнивании значения по умолчанию параллельной группы. В схеме c2
и c3
создавались с выравниванием LEADING
. Если компонентная ориентация была справа налево тогда c2
и c3
был бы расположен на противоположную сторону.
Следующая схема показывает последовательную группу и вдоль горизонтали и вдоль вертикальной оси.
GroupLayout
обеспечивает возможность вставить разрывы между Component
s. Размер разрыва определяется экземпляром LayoutStyle
. Это может быть превращено при использовании setAutoCreateGaps
метод. Точно так же можно использовать setAutoCreateContainerGaps
метод, чтобы вставить разрывы между компонентами, которые касаются края родительского контейнера и контейнера.
Следующее создает панель, состоящую из двух меток в одном столбце, сопровождаемом двумя текстовыми полями в следующем столбце:
JComponent panel = ...; GroupLayout layout = new GroupLayout(panel); panel.setLayout(layout); // Turn on automatically adding gaps between components layout.setAutoCreateGaps(true); // Turn on automatically creating gaps between components that touch // the edge of the container and the container. layout.setAutoCreateContainerGaps(true); // Create a sequential group for the horizontal axis. GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup(); // The sequential group in turn contains two parallel groups. // One parallel group contains the labels, the other the text fields. // Putting the labels in a parallel group along the horizontal axis // positions them at the same x location. // // Variable indentation is used to reinforce the level of grouping. hGroup.addGroup(layout.createParallelGroup(). addComponent(label1).addComponent(label2)); hGroup.addGroup(layout.createParallelGroup(). addComponent(tf1).addComponent(tf2)); layout.setHorizontalGroup(hGroup); // Create a sequential group for the vertical axis. GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup(); // The sequential group contains two parallel groups that align // the contents along the baseline. The first parallel group contains // the first label and text field, and the second parallel group contains // the second label and text field. By using a sequential group // the labels and text fields are positioned vertically after one another. vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE). addComponent(label1).addComponent(tf1)); vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE). addComponent(label2).addComponent(tf2)); layout.setVerticalGroup(vGroup);
Когда выполнено следующее производится.
Это расположение состоит из следующего.
add
методы Group
. add
методы возвращают вызывающую сторону. Это учитывает легкое объединение в цепочку вызовов. Например, group.addComponent(label1).addComponent(label2);
эквивалентно group.addComponent(label1); group.addComponent(label2);
. Group
s; вместо этого используйте создать методы GroupLayout
. Модификатор и Тип | Класс и Описание |
---|---|
static class |
GroupLayout. Выравнивание
Перечисление возможных путей
ParallelGroup может выровнять его дочерние элементы. |
class |
GroupLayout. Группа
Group обеспечивает основание для двух типов операций, поддерживаемых GroupLayout : разметка компонентов один за другим (SequentialGroup ) или выровненный (ParallelGroup ). |
class |
GroupLayout. ParallelGroup
A
Group это выравнивается и размеры, это - дочерние элементы. |
class |
GroupLayout. SequentialGroup
A
Group это располагает и измеряет его элементы последовательно, один за другим. |
Модификатор и Тип | Поле и Описание |
---|---|
static int |
DEFAULT_SIZE
Указывает на размер от компонента, или разрыв должен использоваться для определенного значения диапазона.
|
static int |
PREFERRED_SIZE
Указывает на привилегированный размер от компонента, или разрыв должен использоваться для определенного значения диапазона.
|
Конструктор и Описание |
---|
GroupLayout(Container host)
Создает a
GroupLayout для указанного Container . |
Модификатор и Тип | Метод и Описание |
---|---|
void |
addLayoutComponent(Component component, Object constraints)
Уведомление это a
Component был добавлен к родительскому контейнеру. |
void |
addLayoutComponent(String name, Component component)
Уведомление это a
Component был добавлен к родительскому контейнеру. |
GroupLayout. ParallelGroup |
createBaselineGroup(boolean resizable, boolean anchorBaselineToTop)
Создает и возвращает a
ParallelGroup это выравнивается, это - элементы вдоль базовой линии. |
GroupLayout. ParallelGroup |
createParallelGroup()
Создает и возвращает a
ParallelGroup с выравниванием Alignment.LEADING . |
GroupLayout. ParallelGroup |
createParallelGroup(GroupLayout.Alignment alignment)
Создает и возвращает a
ParallelGroup с указанным выравниванием. |
GroupLayout. ParallelGroup |
createParallelGroup(GroupLayout.Alignment alignment, boolean resizable)
Создает и возвращает a
ParallelGroup с указанным выравниванием и изменяют размеры поведения. |
GroupLayout. SequentialGroup |
createSequentialGroup()
Создает и возвращает a
SequentialGroup . |
boolean |
getAutoCreateContainerGaps()
Возвраты
true если разрывы между контейнером и компонентами, которые ограничивают контейнер, автоматически создаются. |
boolean |
getAutoCreateGaps()
Возвраты
true если разрывы между компонентами автоматически создаются. |
boolean |
getHonorsVisibility()
Возвраты, рассматривают ли компонент visiblity, измеряя и располагая компоненты.
|
float |
getLayoutAlignmentX(Container parent)
Возвращает выравнивание вдоль оси X.
|
float |
getLayoutAlignmentY(Container parent)
Возвращает выравнивание вдоль оси Y.
|
LayoutStyle |
getLayoutStyle()
Возвраты
LayoutStyle используемый для того, чтобы вычислить привилегированный разрыв между компонентами. |
void |
invalidateLayout(Container parent)
Лишает законной силы расположение, указывая, что, если менеджер по расположению кэшировал информацию, это должно быть отброшено.
|
void |
layoutContainer(Container parent)
Размечает указанный контейнер.
|
void |
linkSize(Component... components)
Вынуждает указанные компоненты иметь тот же самый размер независимо от своих привилегированных, минимальных или максимальных размеров.
|
void |
linkSize(int axis, Component... components)
Вынуждает указанные компоненты иметь тот же самый размер вдоль указанной оси независимо от их привилегированных, минимальных или максимальных размеров.
|
Размерность |
maximumLayoutSize(Container parent)
Возвращает максимальный размер для указанного контейнера.
|
Размерность |
minimumLayoutSize(Container parent)
Возвращает минимальный размер для указанного контейнера.
|
Размерность |
preferredLayoutSize(Container parent)
Возвращает привилегированный размер для указанного контейнера.
|
void |
removeLayoutComponent(Component component)
Уведомление это a
Component был удален из родительского контейнера. |
void |
replace(Component existingComponent, Component newComponent)
Заменяет существующий компонент новым.
|
void |
setAutoCreateContainerGaps(boolean autoCreateContainerPadding)
Наборы, должен ли разрыв между контейнером и компонентами, которые касаются границы контейнера, автоматически быть создан.
|
void |
setAutoCreateGaps(boolean autoCreatePadding)
Наборы, должен ли разрыв между компонентами автоматически быть создан.
|
void |
setHonorsVisibility(boolean honorsVisibility)
Наборы, рассматривают ли компонент visiblity, измеряя и располагая компоненты.
|
void |
setHonorsVisibility(Component component, Boolean honorsVisibility)
Наборы, рассматривают ли visiblity компонента для калибровки и расположения.
|
void |
setHorizontalGroup(GroupLayout.Group group)
Наборы
Group это располагает и компоненты размеров вдоль горизонтальной оси. |
void |
setLayoutStyle(LayoutStyle layoutStyle)
Наборы
LayoutStyle используемый, чтобы вычислить привилегированные разрывы между компонентами. |
void |
setVerticalGroup(GroupLayout.Group group)
Наборы
Group это располагает и компоненты размеров вдоль вертикальной оси. |
Строка |
toString()
Возвращает строковое представление этого
GroupLayout . |
public static final int DEFAULT_SIZE
GroupLayout.Group
, Постоянные Значения полейpublic static final int PREFERRED_SIZE
GroupLayout.Group
, Постоянные Значения полейpublic GroupLayout(Container host)
GroupLayout
для указанного Container
.host
- Container
GroupLayout
LayoutManager
дляIllegalArgumentException
- если узел null
public void setHonorsVisibility(boolean honorsVisibility)
true
указывает, что невидимые компоненты не должны быть обработаны как часть расположения. Значение false
указывает, что компоненты должны быть расположены и измерены независимо от видимости. Значение false
полезно, когда видимость компонентов динамически корректируется, и Вы не хотите, чтобы окружающие компоненты и калибровка изменились.
Указанное значение используется для компонентов, которым не определяли явную видимость.
Значение по умолчанию true
.
honorsVisibility
- рассматривают ли компонент visiblity, измеряя и располагая компонентыsetHonorsVisibility(Component,Boolean)
public boolean getHonorsVisibility()
public void setHonorsVisibility(Component component, Boolean honorsVisibility)
Boolean.TRUE
указывает на это если component
не видимо, это не должно быть обработано как часть расположения. Значение false
указывает на это component
располагается и измеряется независимо от, это - видимость. Значение null
указывает на значение, определенное единственным методом параметра setHonorsVisibility
должен использоваться. Если component
не дочерний элемент Container
это GroupLayout
managine, он будет добавлен к Container
.
component
- компонентhonorsVisibility
- ли component
's visiblity нужно рассмотреть для калибровки и расположенияIllegalArgumentException
- если component
null
setHonorsVisibility(Component,Boolean)
public void setAutoCreateGaps(boolean autoCreatePadding)
true
и Вы добавляете два компонента к a SequentialGroup
разрыв между этими двумя компонентами автоматически быть созданным. Значение по умолчанию false
.autoCreatePadding
- создается ли разрыв между компонентами автоматическиpublic boolean getAutoCreateGaps()
true
если разрывы между компонентами автоматически создаются.true
если разрывы между компонентами автоматически создаютсяpublic void setAutoCreateContainerGaps(boolean autoCreateContainerPadding)
false
.autoCreateContainerPadding
- должен ли разрыв между контейнером и компонентами, которые касаются границы контейнера, автоматически быть созданpublic boolean getAutoCreateContainerGaps()
true
если разрывы между контейнером и компонентами, которые ограничивают контейнер, автоматически создаются.true
если разрывы между контейнером и компонентами, которые ограничивают контейнер, автоматически создаютсяpublic void setHorizontalGroup(GroupLayout.Group group)
Group
это располагает и компоненты размеров вдоль горизонтальной оси.group
- Group
это располагает и компоненты размеров вдоль горизонтальной осиIllegalArgumentException
- если группа null
public void setVerticalGroup(GroupLayout.Group group)
Group
это располагает и компоненты размеров вдоль вертикальной оси.group
- Group
это располагает и компоненты размеров вдоль вертикальной осиIllegalArgumentException
- если группа null
public GroupLayout.SequentialGroup createSequentialGroup()
SequentialGroup
.SequentialGroup
public GroupLayout.ParallelGroup createParallelGroup()
ParallelGroup
с выравниванием Alignment.LEADING
. Это - метод покрытия для более общего createParallelGroup(Alignment)
метод.ParallelGroup
createParallelGroup(Alignment)
public GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment)
ParallelGroup
с указанным выравниванием. Это - метод покрытия для более общего createParallelGroup(Alignment,boolean)
метод с true
предоставленный для второго параметра.alignment
- выравнивание для элементов группыParallelGroup
IllegalArgumentException
- если alignment
null
createBaselineGroup(boolean, boolean)
, GroupLayout.ParallelGroup
public GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment, boolean resizable)
ParallelGroup
с указанным выравниванием и изменяют размеры поведения. alignment
параметр определяет, как дочерние элементы располагаются, которые не заполняют группу. Например, если a ParallelGroup
с выравниванием TRAILING
дается 100, и дочерний элемент только нуждается 50, дочерний элемент располагается в позицию 50 (с компонентной ориентацией слева направо). Базовое выравнивание только полезно когда использующийся вдоль вертикальной оси. A ParallelGroup
создаваемый с базовым выравниванием вдоль горизонтальной оси обрабатывается как LEADING
.
Обратитесь к ParallelGroup
для деталей о поведении базовых групп.
alignment
- выравнивание для элементов группыresizable
- true
если группа изменяемого размера; если группа не изменяемого размера, привилегированный размер используется для минимального и максимального размера группыParallelGroup
IllegalArgumentException
- если alignment
null
createBaselineGroup(boolean, boolean)
, GroupLayout.ParallelGroup
public GroupLayout.ParallelGroup createBaselineGroup(boolean resizable, boolean anchorBaselineToTop)
ParallelGroup
это выравнивается, это - элементы вдоль базовой линии.resizable
- изменяемого размера ли группаanchorBaselineToTop
- привязывается ли базовая линия на вершине или нижней части группыcreateBaselineGroup(boolean, boolean)
, GroupLayout.ParallelGroup
public void linkSize(Component... components)
Это может использоваться многократно, чтобы вынудить любое число компонентов совместно использовать тот же самый размер.
Соединенные Компоненты не быть изменяемого размера.
components
- Component
s, у которых должен быть тот же самый размерIllegalArgumentException
- если components
null
, или содержит null
linkSize(int,Component[])
public void linkSize(int axis, Component... components)
Это может использоваться многократно, чтобы вынудить любое число компонентов совместно использовать тот же самый размер.
Соединенный Component
s не быть изменяемого размера.
components
- Component
s, у которых должен быть тот же самый размерaxis
- ось, чтобы соединить размер вперед; один из SwingConstants.HORIZONTAL
или SwingConstans.VERTICAL
IllegalArgumentException
- если components
null
, или содержит null
; или axis
не SwingConstants.HORIZONTAL
или SwingConstants.VERTICAL
public void replace(Component existingComponent, Component newComponent)
existingComponent
- компонент, который должен быть удален и заменен newComponent
newComponent
- компонент, чтобы вставить existingComponent
's местоIllegalArgumentException
- если любой из компонентов null
или existingComponent
не управляется этим менеджером по расположениюpublic void setLayoutStyle(LayoutStyle layoutStyle)
LayoutStyle
используемый, чтобы вычислить привилегированные разрывы между компонентами. Значение null
указывает на совместно используемый экземпляр LayoutStyle
должен использоваться.layoutStyle
- LayoutStyle
использоватьLayoutStyle
public LayoutStyle getLayoutStyle()
LayoutStyle
используемый для того, чтобы вычислить привилегированный разрыв между компонентами. Это возвращает значение, определенное setLayoutStyle
, который может быть null
.LayoutStyle
используемый для того, чтобы вычислить привилегированный разрыв между компонентамиpublic void addLayoutComponent(String name, Component component)
Component
был добавлен к родительскому контейнеру. Недопустимо вызвать этот метод непосредственно, вместо этого следует использовать один из Group
методы, чтобы добавить a Component
.addLayoutComponent
в интерфейсе LayoutManager
name
- строка, которая будет связана с компонентомcomponent
- Component
быть добавленнымpublic void removeLayoutComponent(Component component)
Component
был удален из родительского контейнера. Недопустимо вызвать этот метод непосредственно, вместо этого вызвать remove
на родителе Container
.removeLayoutComponent
в интерфейсе LayoutManager
component
- компонент, который будет удаленComponent.remove(java.awt.MenuComponent)
public Dimension preferredLayoutSize(Container parent)
preferredLayoutSize
в интерфейсе LayoutManager
parent
- контейнер, чтобы возвратить привилегированный размер дляparent
IllegalArgumentException
- если parent
не то же самое Container
это создавалось сIllegalStateException
- если какой-либо из компонентов, добавленных к этому расположению, не находится и в горизонтали и в вертикальной группеContainer.getPreferredSize()
public Dimension minimumLayoutSize(Container parent)
minimumLayoutSize
в интерфейсе LayoutManager
parent
- контейнер, чтобы возвратить размер дляparent
IllegalArgumentException
- если parent
не то же самое Container
то, что это создавалось сIllegalStateException
- если какой-либо из компонентов, добавленных к этому расположению, не находится и в горизонтали и в вертикальной группеContainer.getMinimumSize()
public void layoutContainer(Container parent)
layoutContainer
в интерфейсе LayoutManager
parent
- контейнер, который будет размеченIllegalStateException
- если какой-либо из компонентов, добавленных к этому расположению, не находится и в горизонтали и в вертикальной группеpublic void addLayoutComponent(Component component, Object constraints)
Component
был добавлен к родительскому контейнеру. Недопустимо вызвать этот метод непосредственно, вместо этого следует использовать один из Group
методы, чтобы добавить a Component
.addLayoutComponent
в интерфейсе LayoutManager2
component
- компонент добавилconstraints
- описание того, куда поместить компонентpublic Dimension maximumLayoutSize(Container parent)
maximumLayoutSize
в интерфейсе LayoutManager2
parent
- контейнер, чтобы возвратить размер дляparent
IllegalArgumentException
- если parent
не то же самое Container
то, что это создавалось сIllegalStateException
- если какой-либо из компонентов, добавленных к этому расположению, не находится и в горизонтали и в вертикальной группеContainer.getMaximumSize()
public float getLayoutAlignmentX(Container parent)
getLayoutAlignmentX
в интерфейсе LayoutManager2
parent
- Container
хостинг этого LayoutManager
.5
IllegalArgumentException
- если parent
не то же самое Container
то, что это создавалось сpublic float getLayoutAlignmentY(Container parent)
getLayoutAlignmentY
в интерфейсе LayoutManager2
parent
- Container
хостинг этого LayoutManager
.5
IllegalArgumentException
- если parent
не то же самое Container
то, что это создавалось сpublic void invalidateLayout(Container parent)
invalidateLayout
в интерфейсе LayoutManager2
parent
- Container
хостинг этого LayoutManagerIllegalArgumentException
- если parent
не то же самое Container
то, что это создавалось сpublic String toString()
GroupLayout
. Этот метод предназначается, чтобы использоваться для того, чтобы отладить цели, и контент и формат возвращенной строки могут измениться между реализациями.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92