概述
官方JavaDocsApi: https://docs.oracle.com/javase/8/docs/api/java/awt/GridLayout.html
GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。
以行数和总数优先: 通过构造方法或 setRows 和 setColumns 方法将行数和列数都设置为非零值时,指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。因此,例如,如果指定了三行和两列,在布局中添加了九个组件,则它们将显示为三行三列。仅当将行数设置为零时,指定列数才对布局有效。
GridLayout构造方法:
GridLayout()
| 默认构造, 每个组件占据一行一列 |
GridLayout(int rows, int cols)
| 指定 行数 和 列数 的网格布局 |
GridLayout(int rows, int cols, int hgap, int vgap)
| 指定 行数 和 列数 的网格布局, 并指定 水平 和 竖直 网格间隙 |
代码案例
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 测试网格布局
* @author 28250
*
*/
public class TestGridTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame jf = new JFrame();
jf.setSize(400,300); //大小
jf.setTitle("网格布局"); //设置标题
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭并退出
jf.setLocationRelativeTo(null); //居中
//创建3*3的网格布局
GridLayout layout = new GridLayout(3,3);
//设置间隙
layout.setHgap(10); //水平间隙
layout.setVgap(10); //竖直间隙
//创建中间容器 并设置布局
JPanel panel = new JPanel(layout);
JButton btn1 = new JButton("按钮1");
JButton btn2 = new JButton("按钮2");
JButton btn3 = new JButton("按钮3");
JButton btn4 = new JButton("按钮4");
JButton btn5 = new JButton("按钮5");
JButton btn6 = new JButton("按钮6");
JButton btn7 = new JButton("按钮7");
JButton btn8 = new JButton("按钮8");
panel.add(btn1);
panel.add(btn2);
panel.add(btn3);
panel.add(btn4);
panel.add(btn5);
panel.add(btn6);
panel.add(btn7);
panel.add(btn8);
//将中间容器添加到窗口中
jf.setContentPane(panel);
jf.setVisible(true);
}
}