网格(GridLayout)布局管理器将容器划分为网格,所以组件可以按行和列进行排列。在网格布局管理器中,每一个组件的大小都相同,并且网格中空格的个数由网格的行数和列数决定,如一个两行两列的网格能产生4个大小相等的网格。组件从网格的左上角开始,按照从左到右、从上到下的顺序加入到网格中,而且每一个组件都会填满整个网格。改变窗体的大小,组件的大小也会随之改变。
网格布局管理器常用构造方法:
- public GridLayout(int rows,int columns).
- public GridLayout(int rows,int columns,int horizGap,int vertGap).
其中rows与columns参数代表网格的行数与列数,这两个参数只有一个参数可以为0,代表一行或一列可以排列任意多个组件;参数horizGap与vertGap指定网格之间的距离,其中horizGap参数指定网格之间的水平距离,vertGap参数指定网格之间的垂直距离。
实例
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Demo5 extends JFrame{
public Demo5() {
setBounds(100,100,300,300);//设置窗体坐标和大小
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗体关闭规则,关闭窗口时关闭程序
Container c = getContentPane();//定义一个容器
c.setLayout(new GridLayout(7,3,5,5));//设置容器使用网格布局管理器,设置7行3列的网格
for(int i=0;i<20;i++)//循环添加按钮
c.add(new JButton("按钮"+i));
setVisible(true);//设置窗体为可见
}
public static void main(String[] args) {
new Demo5();
}
}
实验结果
组件在窗体中的布局呈现出一个3行7列的网格,并且添加到该布局中的组件被放置在网格中。如果尝试改变窗体的大小,将发现其中的组件大小也会发生相应的改变。