public class GroupLayout extends Object implements LayoutManager2
GroupLayout是
LayoutManager,分层组组件来定位他们在
Container。
GroupLayout用建设者,但可以手工编码以及。分组是由
Group类实例。
GroupLayout支持两种类型的组。顺序组依次将子元素顺序排列,一个接一个。平行组将其子元素在四种方式中的一种。
每个组可以包含任意数量的元素,一个元素是一个Group,Component,或间隙。差距可以被认为是一个无形的组成部分,具有最低,首选和最大尺寸。此外GroupLayout支持优先的差距,其价值来源于LayoutStyle。
元素类似于一个弹簧。每个元素都有一个指定的最小值,首选和最大值的范围。差距有开发商指定的范围,或一个范围由LayoutStyle。对于Components范围从Component的getMinimumSize确定,getPreferredSize和getMaximumSize方法。此外,当加入Components你可以指定一个特定的范围内使用而不是从组件。一Group范围是由集团的类型的确定。一个ParallelGroup的范围是其元素的范围最大。一个SequentialGroup的范围是其元素的范围和。
GroupLayout对待各轴独立。也就是说,有一个代表水平轴的组,和一个代表垂直轴的组。水平组负责确定沿水平轴线的最小、优选和最大尺寸以及设置包含在它中的部件的x和宽度。垂直组负责确定沿垂直轴的最小,优选和最大尺寸以及设置包含在它的组件的Y和高度。每个Component必须同时在水平和垂直组存在,否则IllegalStateException扔在布局,或当最小或最大尺寸要求,优先。
下面的图显示了水平轴上的顺序组。序列组包含三个组件。沿垂直轴使用一个平行组。

为了加强每一个轴被独立处理的图表显示每个组和元素沿每个轴的范围。每个组件的范围已被投影到轴上,并组呈现在蓝色(水平)和红色(垂直)。为可读性,在顺序组中的每个元素之间有一个间隙。
沿水平轴的顺序组呈现为一个坚实的蓝色线。注意顺序组是它包含的子元素的总和。
沿垂直轴平行组是每一个组件的高度的最大值。由于所有三个组分都具有相同的高度,平行组具有相同的高度。
下面的图显示了相同的三个组件,但沿水平轴和顺序组沿垂直轴的平行组。

作为c1是最大的三个部件,平行组的大小c1。作为c2和c3小于c1他们是根据指定的元件对齐对齐(如果指定)或平行组的默认对齐方式。图中的c2和c3与LEADING对准了。如果组件的方向从右到左,然后c2 c3将位于对面。
下面的图显示了水平和垂直轴上的顺序组。

GroupLayout提供插入Components能力之间的差距。这种差距的大小是由LayoutStyle实例确定。这可能是打开使用setAutoCreateGaps方法。同样,你可以使用setAutoCreateContainerGaps方法插入组件,触摸的父容器的边缘之间的间隙。
下面建立一个由一列中的两个标签面板,然后在下一栏两文本框:
组件面板=…;grouplayout布局=新grouplayout(面板);面板设置布局(布局);/打开自动添加组件之间的间隙布局。setautocreategaps(真的);/打开自动创建触摸组件之间的间隙容器和容器的边缘。布局。setautocreatecontainergaps(真的);/创建一个水平轴的顺序组。grouplayout.sequentialgroup H组= createsequentialgroup()布局;顺序组依次包含两个平行组。一个平行组包含标签,另一组包含文本字段。沿着水平轴的平行组中的标签/ /将它们放置在同一个X位置。/ //变量缩进是用来加强分组的水平。H组。createparallelgroup() addgroup(布局。addcomponent(标签)。addcomponent(label2));H组。createparallelgroup() addgroup(布局。addcomponent(TF1)。addcomponent(TF2));布局sethorizontalgroup(H组);/创建一个垂直轴的顺序组。grouplayout.sequentialgroup V = createsequentialgroup()布局;的顺序组包含两个对齐的平行组沿着基线的内容。第一平行组包含第一个标签和文本字段,第二个并行组包含第二个标签和文本字段。通过使用一个连续的组标签和文本字段相互垂直放置的位置。V。addgroup(布局。createparallelgroup(对齐。基线)。addcomponent(标签)。addcomponent(TF1));V。addgroup(布局。createparallelgroup(对齐。基线)。addcomponent(label2)。addcomponent(TF2));布局。setverticalgroup(V);
当运行以下是产生。

这个布局包括以下几个。
Group add方法做的。add方法返回调用者。这可以很容易地链接调用。例如,group.addComponent(label1).addComponent(label2);相当于group.addComponent(label1); group.addComponent(label2);。Groups没有公共构造函数;而用GroupLayout创建方法。| Modifier and Type | Class and Description |
|---|---|
static class |
GroupLayout.Alignment
的可能途径
ParallelGroup枚举可以使孩子。
|
class |
GroupLayout.Group
|
class |
GroupLayout.ParallelGroup
一个
Group对齐和大小的孩子。
|
class |
GroupLayout.SequentialGroup
一个
Group,位置和大小的元素的顺序,一个接一个。
|
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_SIZE
表示从组件或间隙的大小应用于特定的范围值。
|
static int |
PREFERRED_SIZE
表示从组件或间隙中的首选大小应用于特定范围值。
|
| Constructor and Description |
|---|
GroupLayout(Container host)
创建一个指定的
Container
GroupLayout。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addLayoutComponent(Component component, Object constraints)
通知,
Component已添加到父容器。
|
void |
addLayoutComponent(String name, Component component)
通知,
Component已添加到父容器。
|
GroupLayout.ParallelGroup |
createBaselineGroup(boolean resizable, boolean anchorBaselineToTop)
创建并返回一个
ParallelGroup对齐是沿基线元素。
|
GroupLayout.ParallelGroup |
createParallelGroup()
创建并返回一个与
Alignment.LEADING对准
ParallelGroup。
|
GroupLayout.ParallelGroup |
createParallelGroup(GroupLayout.Alignment alignment)
创建并返回一个与指定的对齐
ParallelGroup。
|
GroupLayout.ParallelGroup |
createParallelGroup(GroupLayout.Alignment alignment, boolean resizable)
创建并返回一个与指定的对齐
ParallelGroup和大小调整行为。
|
GroupLayout.SequentialGroup |
createSequentialGroup()
创建并返回一个
SequentialGroup。
|
boolean |
getAutoCreateContainerGaps()
返回
true如果容器和组件之间的间隙,边境的集装箱自动创建。
|
boolean |
getAutoCreateGaps()
返回
true如果组件之间的间隙自动创建。
|
boolean |
getHonorsVisibility()
返回时,是否考虑组件的可见性大小和定位组件。
|
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)
强制指定的组件沿指定的轴具有相同的大小,而不管它们的首选,最小或最大大小。
|
Dimension |
maximumLayoutSize(Container parent)
返回指定容器的最大大小。
|
Dimension |
minimumLayoutSize(Container parent)
返回指定容器的最小大小。
|
Dimension |
preferredLayoutSize(Container parent)
返回指定容器的首选大小。
|
void |
removeLayoutComponent(Component component)
通知,
Component已从父容器中移除。
|
void |
replace(Component existingComponent, Component newComponent)
用新的替换现有组件。
|
void |
setAutoCreateContainerGaps(boolean autoCreateContainerPadding)
设置容器和触摸容器边框之间的组件之间的间隙是否应自动创建。
|
void |
setAutoCreateGaps(boolean autoCreatePadding)
设置是否自动创建组件之间的间隙。
|
void |
setHonorsVisibility(boolean honorsVisibility)
设置大小和定位组件时是否考虑组件的可见性。
|
void |
setHonorsVisibility(Component component, Boolean honorsVisibility)
设置组件的可见性是否被考虑用于大小和定位。
|
void |
setHorizontalGroup(GroupLayout.Group group)
集
Group沿水平轴的位置和大小的组件。
|
void |
setLayoutStyle(LayoutStyle layoutStyle)
设置用于计算元件之间的间隙的
LayoutStyle优先。
|
void |
setVerticalGroup(GroupLayout.Group group)
集
Group沿垂直轴的位置和大小的组件。
|
String |
toString()
返回该
GroupLayout字符串表示形式。
|
public static final int DEFAULT_SIZE
public static final int PREFERRED_SIZE
public GroupLayout(Container host)
Container
GroupLayout。
host -
Container的
GroupLayout是
LayoutManager为
IllegalArgumentException如果主机
null
public void setHonorsVisibility(boolean honorsVisibility)
true表明非可视组件不应该作为布局的一部分。一个价值
false表明部件应定位和大小的不可见性。
一个价值false是有用的当组件的可见性是动态调整的,你不想周围的元件和尺寸变化。
指定的值用于不具有指定的显式可见性的组件使用。
默认的是true。
honorsVisibility -无论是组件的可见性考虑尺寸和定位元件
setHonorsVisibility(Component,Boolean)
public boolean getHonorsVisibility()
public void setHonorsVisibility(Component component, Boolean honorsVisibility)
Boolean.TRUE表明如果
component不可见,它不应该作为布局的一部分。一个价值
false表明
component定位和大小的不管它的知名度。一个价值
null表示由单个参数的方法
setHonorsVisibility指定的值应该被使用。
如果component是不是孩子的Container这GroupLayout是管理,它将被添加到Container。
component -组件
honorsVisibility -是否应该考虑这
component能见度的大小和位置
null
component
IllegalArgumentException
setHonorsVisibility(Component,Boolean)
public void setAutoCreateGaps(boolean autoCreatePadding)
true你加两组件到一个
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()
Alignment.LEADING对准
ParallelGroup。这是一个更一般的
createParallelGroup(Alignment)方法覆盖的方法。
ParallelGroup
createParallelGroup(Alignment)
public GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment)
ParallelGroup。这是一个与第二个参数提供
true更一般的
createParallelGroup(Alignment,boolean)方法覆盖的方法。
alignment -组的元素的对齐方式
ParallelGroup
null
alignment
IllegalArgumentException
createBaselineGroup(boolean, boolean),
GroupLayout.ParallelGroup
public GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment, boolean resizable)
ParallelGroup与指定的对齐和调整大小行为。这孩子怎么
alignment参数指定元素的位置,不填写组。例如,如果一个与
TRAILING对准
ParallelGroup给出100个孩子只需要50,孩子被放置在位置50(以左至右组件定位)。
基线对齐是唯一有用的,当使用沿垂直轴。一个ParallelGroup沿水平轴的基线对齐创建作为LEADING。
参考ParallelGroup在基线组的行为细节。
alignment -组的元素的对齐方式
resizable -
true如果组的大小可调整;如果是不可调整大小的首选大小用于最小和最大尺寸的组
ParallelGroup
null
alignment
IllegalArgumentException
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 -这是
Components具有相同的尺寸
IllegalArgumentException -如果
components是
null,或包含
null
linkSize(int,Component[])
public void linkSize(int axis,
Component... components)
这可以使用多次来强制任何数量的组件共享相同的大小。
联系Components不可调整大小。
components -这是
Components具有相同的尺寸
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的地方组件
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方法添加一个
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方法添加一个
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举办这次
LayoutManager的
Container
.5对齐;
IllegalArgumentException -如果
parent并非是同一
Container
public float getLayoutAlignmentY(Container parent)
getLayoutAlignmentY 接口
LayoutManager2
parent举办这次
LayoutManager的
Container
.5对齐;
IllegalArgumentException -如果
parent并非是同一
Container
public void invalidateLayout(Container parent)
invalidateLayout 接口
LayoutManager2
parent举办这次的布局管理器的
Container
IllegalArgumentException -如果
parent并非是同一
Container
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.