J2SE第十一章——GUI(事件监听机制)

 事件监听

         生活中的行为动作的执行方式:

                   1. 明确知道该动作怎么/何时发生  普通的方法调用

                   2. 行为不知道确切的发生时间,密切监视动作何时发生

                   3. 若干个行为同事发生--线程 

         比如:

                   我在看小抄

                            事件源----主体:我

                            行为:看小抄

                            监听动作:看监考老师来没来 

                            监听器:

                                     监听行为: 动作--> 方法--> 接口(定义监听的接口,该接口封装了事件源监听的那个行为)

                            事件源注册监听器; 事件源和监听器绑定起来 

 

                   1.publicclass 事件源类 {}

 

                   2. public interface监听器接口 {

                            publicvoid 事件源正在监听的那个行为方法() {}

                   }

 

                   3.定义了一个类去实现监听器接口

                            publicclass 监听器接口实现类 implements 监听器接口 {

 

                                     publicvoid 事件源正在监听的那个行为方法(事件对象) {

                                               又因为监听器定义成了一个接口,所以该参数应该是:实现了监听器接口的某个类的对象

                                     }

                            }

                            事件源.add监听器接口(注册在事件源上的监听器对象);

                           

 

                   事件源:按钮  需要被时刻“监听”被单击的动作

                            事件源:Button

                            监听器接口: ActionListener: actionPerformed(ActionEvent)

 

       代码实现:

import java.awt.*;
import java.awt.event.*;

public class Test {
	public static void main(String[] args) {
		Frame f = new Frame("BorderLayout");

		Button bn = new Button("BN");
		f.add(bn);

		/*事件源:bn
		监听的动作:actionPerformed(ActionEvent e)
		监听器接口:ActionListener

		在事件源上注册监听器: addActionListener(监听器接口对象)
		*/

		bn.addActionListener(new MyListener());

		f.setSize(200,200);
		f.setVisible(true);
	}
}

class MyListener implements ActionListener {
	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("Hello");
	}
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值