awt的GridLayout布局
GridLayout布局管理器将容器分割成纵横线分割的网格,每个网格所占的区域大小相同。当向使用GridLayout布局管理的容器中添加组件时,默认 从左向右、从上向下依次添加到每个网格中。与FlowLayout不同的是,放置在GridLayout布局管理器中的各个组件的大小由组件所处区域决定,其中 每个组件将自动占满整个区域
GridLayout管理器是一个类,它的构造方法如下。注意rows是行数、cols是列数、hgap是垂直间距、vgap是水平间距
构造方法 | 作用 |
---|---|
GridLayout(int rows,int cols) | 采用指定的行数、指定的列数、默认的横向间距、默认的纵向间距将容器分割成多个网格 |
GridLayout(int rows,int cols,int hgap,int vgap) | 采用指定的行数、指定的列数、指定的横向间距、指定的纵向间距将容器分割成多个网格 |
awt的GridLayout布局_练习
xxxxxxxxxx
package ch29;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class a_3_4awt_GridLayout {
public static void main(String[] args) {
//Frame是一个window窗口的容器,使用的默认布局管理器是BorderLayout,所以我们可以不需要再去设置Frame的布局管理器,使用现成的即可
Frame frame = new Frame("计算器");
//1、创建一个Panel容器对象,里面存放一个TextFiled组件
Panel p = new Panel();
p.add(new TextField(30));//表示这个文本组件一行能容纳多少个字符
//2、把当前的Panel容器添加到Frame容器的北部区域
frame.add(p,BorderLayout.NORTH);//BorderLayout.NORTH表示把Panel容器添加到Frame容器的北部区域
//3、创建一个Panel容器对象,用来存放网格,并且设置Panel容器的布局管理器为GridLayout
Panel p2 = new Panel();
//Panel容器的默认布局管理器是FlowLayout,我们要把这个默认布局管理器修改为GridLayout,修改是使用setLayout方法
p2.setLayout( new GridLayout(3,5,4,4));
//4、往Panel容器中添加内容
for (int i = 0; i < 10; i++) {
//p2.add(new Button(i+""));//把0~9的i值分别放到一个button按钮里面。要把整型的参数转为字符串型,再放到button里面
//最简单的转换方法就是在i后面加一个字符串,就可以把整型的i值转为字符串型的
//专业一点的转换写法当然是下一行啦,如下
p2.add(new Button(String.valueOf(i)));//整型转为字符串型
}
//把+-×÷.=特殊符号写进来
p2.add(new Button("+"));
p2.add(new Button("-"));
p2.add(new Button("×"));
p2.add(new Button("÷"));
p2.add(new Button("."));
//p2.add(new Button("="));
//5、把当前Panel容器添加到Frame容器中
frame.add(p2);//只写一个参数的话,就是不指定该Panel容器在Frame容器的哪个区域,系统会默认是中间区域
frame.pack();
frame.setVisible(true);
//给Frame设置WindowListener监听器,监听用户点击右上角X的动作,则关闭窗口
frame.addWindowListener(new WindowAdapter() {
//采用Java通过的适配器设计模式,我们只需要重写自己需要的方法,例如windowClosing方法,如下
public void windowClosing(WindowEvent e) {
System.exit(0);//原理:退出JVM虚拟机,即退出当前运行的Java程序
}
});
}
}