需求:把按钮添加到窗体,并对按钮添加一个点击事件。
A:创建窗体对象
B:创建按钮对象
C:把按钮添加到窗体
D:窗体显示
注意:这里对按钮添加点击事件,同样使用监听器。
但是,这里的按钮是组件,所以不能使用 窗体侦听器WindowListener()
要使用 组件侦听器 ActionListener() 。
同时,由于 ActionListener() 只有一个构造方法,所以不需要调用适配器。
代码:
1 public class FrameDemo3 {
2
3 public static void main(String[] args) {
4 // 创建窗体对象 局部内部类访问局部变量,得使该变量为静态 final
5 final Frame f = new Frame("添加按钮");
6
7 // 设置窗体属性
8 f.setBounds(300, 300, 400, 400);
9
10 // 设置窗体的布局为流水布局
11 f.setLayout(new FlowLayout());
12
13 // 创建按钮对象
14 Button b = new Button("点击");
15
16 // 设置按钮尺寸
17 b.setBounds(10, 20, 20, 20);
18
19 // 添加按钮到窗体中
20 f.add(b);
21
22 // 创建窗口关闭监听
23 f.addWindowListener(new WindowAdapter() {// 适配器
24 public void windowClosing(WindowEvent e) {
25 System.exit(0);
26 }
27
28 });
29
30 // 创建按钮点击的监听事件
31 // 用于接收操作事件的侦听器接口 ActionListener
32 b.addActionListener(new ActionListener() {
33 //由于操作时间的侦听器接口只有1个构造方法,所以直接使用它,不需要使用适配器
34 public void actionPerformed(ActionEvent e) {
35 //每点击一次“点击”按钮,就会出现一个“再点啊”按钮
36 Button bu = new Button("再点啊");
37 bu.setSize(20,20);
38 f.add(bu); //局部内部类中访问局部变量,这里在外面的f添加final
39 f.setVisible(true);
40 }
41 });
42 // 使窗体显示
43 f.setVisible(true);
44 }
45
46 }