设置窗口的打开位置以及窗口的长和宽
frame.setBounds(200, 200, 400, 320);
将文本框添加在窗口北部区域
frame.add(inputBox, BorderLayout.NORTH);
2.3.2 设置按钮布局
Panel panel = new Panel();
panel.setLayout(new GridLayout(5, 4, 3, 3));
Panel
是内嵌式容器,必须内嵌在其它容器中使用,不能独立存在。其默认使用FlowLayout
布局管理器。但我使用的是GridLayout
网式布局管理器,可以将区域划分为 row*col
个小区域,GridLayout
构造方法GridLayout(rows,cols,hgap,vgap)
四个参数分别指定了要划分的行、列、水平间距和垂直间距。
2.3.3 设置按钮
String[] s = {“sqrt”, “<-”, “AC”,“%”,
“7”, “8”, “9”, “+”,
“4”, “5”, “6”, “-”,
“1”, “2”, “3”, “*”,
“0”, “.”, “=”, “/”};
for (int i = 0; i < s.length; i++) {
button[i] = new Button(s[i]);//设置按钮上的字符
button[i].addActionListener(new ActionListen());//设置按钮监听
panel.add(button[i]);//将按钮放入Panel容器中
}
2.3.4 设置窗口可见,注册窗口监听
将panel设置在中部区域
frame.add(panel,BorderLayout.CENTER);
设置窗口可见
frame.setVisible(true);
窗口监听器,注册监听,可以关闭窗口
frame.addWindowListener(new WindowAdapter() { //匿名内部类
//窗口监听器,注册监听,可以关闭窗口
@Override
public void windowClosing(WindowEvent e) {
System.exit(0); //关闭程序
}
});
WindowAdapter
适配器实现了所有的接口方法,以空方法的形式,在其子类中只要重写需要的就行,也是一种设计模式,适配器模式:因为如果要实现所有接口实在太多,不方变,采用这种过渡类.
2.4 ActionListen类实现ActionListener接口
2.4.1 public void actionPerformed(ActionEvent e)
这是接口 ActionListener
里面定义的一个抽象方法,所有实现这个接口的类都要重写这个方法。一般情况下,这是在编写GUI程序时,组件发生“有意义”的事件时会调用这个方法,比如按钮被按下,文本框内输入回车时都会触发这个事件,然后调用你编写的事件处理程序。实现过程大体如下:编写一个 ActionListener
类的监听器,组件注册该监听器,监听器内部要编写这个 actionPerformed
方法。