Module  java.desktop
软件包  java.awt

Class GridLayout

  • All Implemented Interfaces:
    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 - 值为0,表示任意数量的行
        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对象的约束。

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

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

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