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