模块 java.desktop
 java.awt

类 GridLayout

java.lang.Object
java.awt.GridLayout
所有已实现的接口:
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"));
   }
 }
 

如果容器的 ComponentOrientation 属性是水平且从左到右,则上述示例会生成图 1 中所示的输出。如果容器的 ComponentOrientation 属性是水平且从右到左,则该示例会生成图 2 中所示的输出。

Shows 6 buttons in rows of 2. Row 1 shows buttons 1 then 2.
        Row 2 shows buttons 3 then 4. Row 3 shows buttons 5 then 6.

图 1:水平,从左到右

Shows 6 buttons in rows of 2. Row 1 shows buttons 2 then 1.
        Row 2 shows buttons 4 then 3. Row 3 shows buttons 6 then 5.

图 2:水平,从右到左


当行数和列数均已通过构造函数或 setRowssetColumns 方法设置为非零值时,指定的列数将被忽略。相反,列数由指定的行数和布局中的组件总数确定。因此,例如,如果指定了三行两列并将九个组件添加到布局中,它们将显示为三行三列。仅当行数设置为零时,指定列数才会影响布局。

自从:
1.0
参见:
  • 构造方法详细信息

    • GridLayout

      public GridLayout()
      创建一个网格布局,默认情况下每个组件在一行中有一列。
      自从:
      1.1
    • GridLayout

      public GridLayout(int rows, int cols)
      创建具有指定行数和列数的网格布局。布局中的所有组件都具有相同的大小。

      rowscols 中的一个(但不是两个)可以为零,这意味着可以将任意数量的对象放置在一行或一列中。

      参数:
      rows - 行,值为零表示任意数量的行。
      cols - 列,值为零表示任意数量的列。
    • GridLayout

      public GridLayout(int rows, int cols, int hgap, int vgap)
      创建具有指定行数和列数的网格布局。布局中的所有组件都具有相同的大小。

      此外,水平和垂直间隙设置为指定值。每列之间放置水平间隙。每行之间放置垂直间隙。

      rowscols 中的一个(但不是两个)可以为零,这意味着可以将任意数量的对象放置在一行或一列中。

      所有 GridLayout 构造函数都遵循这个。

      参数:
      rows - 行,值为零表示任意数量的行
      cols - 列,值为零表示任意数量的列
      hgap - 水平间隙
      vgap - 垂直间隙
      抛出:
      IllegalArgumentException - 如果 rowscols 的值都设置为零
  • 方法详情

    • getRows

      public int getRows()
      获取此布局中的行数。
      返回:
      此布局中的行数
      自从:
      1.1
    • setRows

      public void setRows(int rows)
      将此布局中的行数设置为指定值。
      参数:
      rows - 此布局中的行数
      抛出:
      IllegalArgumentException - 如果 rowscols 的值都设置为零
      自从:
      1.1
    • getColumns

      public int getColumns()
      获取此布局中的列数。
      返回:
      此布局中的列数
      自从:
      1.1
    • setColumns

      public void setColumns(int cols)
      将此布局中的列数设置为指定值。如果构造函数或 setRows 方法指定的行数不为零,则设置列数对布局没有影响。在这种情况下,布局中显示的列数由组件总数和指定的行数决定。
      参数:
      cols - 此布局中的列数
      抛出:
      IllegalArgumentException - 如果 rowscols 的值都设置为零
      自从:
      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)
      将具有指定名称的指定组件添加到布局中。
      指定者:
      addLayoutComponent 在接口 LayoutManager
      参数:
      name - 组件名称
      comp - 要添加的组件
    • removeLayoutComponent

      public void removeLayoutComponent(Component  comp)
      从布局中移除指定的组件。
      指定者:
      removeLayoutComponent 在接口 LayoutManager
      参数:
      comp - 要删除的组件
    • preferredLayoutSize

      public Dimension  preferredLayoutSize(Container  parent)
      使用此网格布局确定容器参数的首选大小。

      网格布局的首选宽度是容器中所有组件的最大首选宽度乘以列数,加上水平填充乘以列数减一,再加上目标容器的左右insets。

      网格布局的首选高度是容器中所有组件的最大首选高度乘以行数,加上垂直填充乘以行数减一,再加上目标容器的顶部和底部insets。

      指定者:
      preferredLayoutSize 在接口 LayoutManager
      参数:
      parent - 进行布局的容器
      返回:
      用于布置指定容器的子组件的首选尺寸
      参见:
    • minimumLayoutSize

      public Dimension  minimumLayoutSize(Container  parent)
      使用此网格布局确定容器参数的最小大小。

      网格布局的最小宽度是容器中所有组件的最大最小宽度乘以列数,加上水平填充乘以列数减一,再加上目标容器的左右 insets。

      网格布局的最小高度是容器中所有组件的最大最小高度乘以行数,加上垂直填充乘以行数减一,再加上目标容器的顶部和底部insets。

      指定者:
      minimumLayoutSize 在接口 LayoutManager
      参数:
      parent - 进行布局的容器
      返回:
      布置指定容器的子组件所需的最小尺寸
      参见:
    • layoutContainer

      public void layoutContainer(Container  parent)
      使用此布局布置指定的容器。

      此方法重塑指定目标容器中的组件以满足 GridLayout 对象的约束。

      网格布局管理器通过根据布局中的行数和列数将容器中的可用空间划分为大小相等的部分来确定各个组件的大小。容器的可用空间等于容器的大小减去任何insets和任何指定的水平或垂直间隙。网格布局中的所有组件都具有相同的大小。

      指定者:
      layoutContainer 在接口 LayoutManager
      参数:
      parent - 进行布局的容器
      参见:
    • toString

      public String  toString()
      返回此网格布局值的字符串表示形式。
      重写:
      toString 在类 Object
      返回:
      此网格布局的字符串表示形式