模块  java.desktop
软件包  java.awt

Class GridLayout

  • 实现的所有接口
    LayoutManagerSerializable

    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所示的输出。

    Figures 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. 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. Figure 1: Horizontal, Left-to-Right Figure 2: Horizontal, Right-to-Left

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

    从以下版本开始:
    1.0
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • 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构造函数都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)
        将具有指定名称的指定组件添加到布局中。
        Specified by:
        addLayoutComponent接口 LayoutManager
        参数
        name - 组件的名称
        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指定目标容器中的组件,以满足GridLayout对象的约束。

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

        Specified by:
        layoutContainer接口 LayoutManager
        参数
        parent - 用于布局的容器
        另请参见:
        ContainerContainer.doLayout()
      • toString

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