GridLayout(网格布局管理器)
- 将区域分割成行数(rows)和列数(columns)的网格状布局,组件按照由左至右、由上而下的次序排列填充到各个单元格中
- 在网格布局管理器中,每一个组件大小相同,每一个组件都会填满整个网格,改变窗体的大小,组件的大小也会随之改变
GridLayout构造方法
- GridLayout(int rows,int cols):创建一个指定行(rows)和列(cols)的网格布局。布局的所有组件大小一样,没有间隔
- GridLayout(int rows,int clos,int hgap,int vgap):创建一个指定行(rows)和列(clos)的网格布局,并且可以指定组件横向(hgap)和纵向(vgap)的间隔,单位是像素
提示
GridLayout布局管理器总是忽略组件的最佳大小,而是根据提供的行和列进行平分,该布局管理的所有单元格的宽度和高度一样的
Demo
import javax.swing.*;
import java.awt.*;
public class DemoGrid {
public static void main(String[] args) {
JFrame jFrame = new JFrame("GridLayout布局计算器");
Container container = jFrame.getContentPane();
//设置网格布局,4行4列,上下左右间隔为5像素
container.setLayout(new GridLayout(4,4,5,5));
container.add(new JButton("7"));
container.add(new JButton("8"));
container.add(new JButton("9"));
container.add(new JButton("/"));
container.add(new JButton("4"));
container.add(new JButton("5"));
container.add(new JButton("6"));
container.add(new JButton("*"));
container.add(new JButton("1"));
container.add(new JButton("2"));
container.add(new JButton("3"));
container.add(new JButton("-"));
container.add(new JButton("0"));
container.add(new JButton("."));
container.add(new JButton("="));
container.add(new JButton("+"));
jFrame.setSize(400,300);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}