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布局_练习
xxxxxxxxxxpackage 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程序 } });
}}