Module java.desktop
Package java.awt

Class 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
参见:
  • Constructor Details

    • 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的值都设置为零
  • Method Details

    • 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)
      使用此网格布局确定容器参数的首选大小。

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

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

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

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

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

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

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

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

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

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

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

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