- java.lang.Object
-
- java.awt.GridLayout
-
- All Implemented Interfaces:
-
LayoutManager
,Serializable
public class GridLayout extends Object implements LayoutManager, Serializable
GridLayout
类是一个布局管理器,它将一个容器的组件放在矩形网格中。 容器被分成等大小的矩形,并且每个矩形中放置一个组件。 例如,以下是一个小程序,它将六个按钮放置成三行和两列:
import java.awt.*; import java.applet.Applet; public class ButtonGrid extends Applet { public void init() { setLayout(new GridLayout(3,2)); add(new Button("1")); add(new Button("2")); add(new Button("3")); add(new Button("4")); add(new Button("5")); add(new Button("6")); } }
如果容器的
Figures Figure 1: Horizontal, Left-to-Right Figure 2: Horizontal, Right-to-LeftComponentOrientation
属性是水平的并且从左到右,则上述示例生成图1所示的输出。如果容器的ComponentOrientation
属性是水平的并且从右到左,则该示例生成如图2所示的输出。当行数和列数都被设置为非零值时,无论是通过构造方法还是通过
setRows
和setColumns
方法,都会忽略指定的列数。 而是从指定的行数和布局中的组件总数确定列的数量。 因此,例如,如果已经指定了三行和两列,并且将九个组件添加到布局,则它们将显示为三列三列。 仅当行数设置为零时,才指定列数影响布局。- 从以下版本开始:
- 1.0
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 GridLayout()
在单个行中创建一个每个组件的默认值为一列的网格布局。GridLayout(int rows, int cols)
创建具有指定行数和列数的网格布局。GridLayout(int rows, int cols, int hgap, int vgap)
创建具有指定行数和列数的网格布局。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addLayoutComponent(String name, Component comp)
将具有指定名称的指定组件添加到布局。int
getColumns()
获取此布局中的列数。int
getHgap()
获得组件之间的水平间隙。int
getRows()
获取此布局中的行数。int
getVgap()
获取组件之间的垂直间距。void
layoutContainer(Container parent)
使用此布局放出指定的容器。Dimension
minimumLayoutSize(Container parent)
使用此网格布局确定容器参数的最小大小。Dimension
preferredLayoutSize(Container parent)
使用此网格布局确定容器参数的首选大小。void
removeLayoutComponent(Component comp)
从布局中删除指定的组件。void
setColumns(int cols)
将此布局中的列数设置为指定的值。void
setHgap(int hgap)
将组件之间的水平间距设置为指定值。void
setRows(int rows)
将此布局中的行数设置为指定的值。void
setVgap(int vgap)
将组件之间的垂直间距设置为指定值。String
toString()
返回此网格布局值的字符串表示形式。
-
-
-
构造方法详细信息
-
GridLayout
public GridLayout()
在单个行中创建一个每个组件的默认值为一列的网格布局。- 从以下版本开始:
- 1.1
-
GridLayout
public GridLayout(int rows, int cols)
创建具有指定行数和列数的网格布局。 布局中的所有组件都具有相同的大小。rows
和cols
一个但不是两个可以为零,这意味着可以将任意数量的对象放置在一行或一列中。- 参数
-
rows
- 行,值为零表示任意数量的行。 -
cols
- 列,值为零表示任意数量的列。
-
GridLayout
public GridLayout(int rows, int cols, int hgap, int vgap)
创建具有指定行数和列数的网格布局。 布局中的所有组件都具有相同的大小。此外,水平和垂直间隙被设置为指定的值。 每个列之间放置水平间隙。 在每行之间放置垂直间隙。
rows
和cols
一个但不是两个可以为零,这意味着可以将任意数量的对象放置在行或列中。所有
GridLayout
构造函数都GridLayout
这一个。- 参数
-
rows
- 值为0,表示任意数量的行 -
cols
- 列,值为零表示任意数量的列 -
hgap
- 水平间隙 -
vgap
- 垂直间隙 - 异常
-
IllegalArgumentException
- 如果rows
和cols
的值都设置为零
-
-
方法详细信息
-
getRows
public int getRows()
获取此布局中的行数。- 结果
- 此布局中的行数
- 从以下版本开始:
- 1.1
-
setRows
public void setRows(int rows)
将此布局中的行数设置为指定的值。- 参数
-
rows
- 此布局中的行数 - 异常
-
IllegalArgumentException
- 如果rows
和cols
的值都设置为零 - 从以下版本开始:
- 1.1
-
getColumns
public int getColumns()
获取此布局中的列数。- 结果
- 此布局中的列数
- 从以下版本开始:
- 1.1
-
setColumns
public void setColumns(int cols)
将此布局中的列数设置为指定的值。 如果由构造函数指定的行数或由setRows
方法指定的行数不为零,则设置列数对布局没有影响。 在这种情况下,布局中显示的列数由组件的总数和指定的行数决定。- 参数
-
cols
- 此布局中的列数 - 异常
-
IllegalArgumentException
- 如果rows
和cols
的值都设置为零 - 从以下版本开始:
- 1.1
-
getHgap
public int getHgap()
获得组件之间的水平间隙。- 结果
- 组件之间的水平间隙
- 从以下版本开始:
- 1.1
-
setHgap
public void setHgap(int hgap)
将组件之间的水平间距设置为指定值。- 参数
-
hgap
- 组件之间的水平间隙 - 从以下版本开始:
- 1.1
-
getVgap
public int getVgap()
获取组件之间的垂直间距。- 结果
- 组件之间的垂直间隙
- 从以下版本开始:
- 1.1
-
setVgap
public void setVgap(int vgap)
将组件之间的垂直间距设置为指定值。- 参数
-
vgap
- 组件之间的垂直间隙 - 从以下版本开始:
- 1.1
-
addLayoutComponent
public void addLayoutComponent(String name, Component comp)
将具有指定名称的指定组件添加到布局。- Specified by:
-
addLayoutComponent
在接口LayoutManager
- 参数
-
name
- 组件的名称 -
comp
- 要添加的组件
-
removeLayoutComponent
public void removeLayoutComponent(Component comp)
从布局中删除指定的组件。- Specified by:
-
removeLayoutComponent
在接口LayoutManager
- 参数
-
comp
- 要删除的组件
-
preferredLayoutSize
public Dimension preferredLayoutSize(Container parent)
使用此网格布局确定容器参数的首选大小。网格布局的首选宽度是容器中所有组件的最大优先宽度乘以列数,加上水平填充次数,列数减1,加上目标容器的左和右插入。
网格布局的首选高度是容器中所有组件的最大优先高度乘以行数,加上垂直填充次数,行数减1,加上目标容器的顶部和底部插入。
- Specified by:
-
preferredLayoutSize
在接口LayoutManager
- 参数
-
parent
- 要进行布局的容器 - 结果
- 布置指定容器的子组件的首选尺寸
- 另请参见:
-
minimumLayoutSize(java.awt.Container)
,Container.getPreferredSize()
-
minimumLayoutSize
public Dimension minimumLayoutSize(Container parent)
使用此网格布局确定容器参数的最小大小。网格布局的最小宽度是容器中所有组件的最大最小宽度乘以列数,加上水平填充次数,列数减1,加上目标容器的左和右插入。
网格布局的最小高度是容器中所有组件的最大最小高度乘以行数,加上垂直填充乘以行数减1,加上目标容器的顶部和底部插入。
- Specified by:
-
minimumLayoutSize
在接口LayoutManager
- 参数
-
parent
- 进行布局的容器 - 结果
- 布置指定容器的子组件所需的最小尺寸
- 另请参见:
-
preferredLayoutSize(java.awt.Container)
,Container.doLayout()
-
layoutContainer
public void layoutContainer(Container parent)
使用此布局放出指定的容器。该方法重新形成指定目标容器中的组件,以满足
GridLayout
对象的约束。网格布局管理器根据布局中的行数和列数将容器中的可用空间分成相等大小的部分来确定各个组件的大小。 容器的可用空间等于容器的尺寸减去任何插入物和任何指定的水平或垂直间隙。 网格布局中的所有组件都具有相同的大小。
- Specified by:
-
layoutContainer
在接口LayoutManager
- 参数
-
parent
- 进行布局的容器 - 另请参见:
-
Container
,Container.doLayout()
-
-