需求:把按钮添加到窗体,并对按钮添加一个点击事件。
  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 }