JAVA 事件处理模型

一、用户事件

用户在程序界面所进行的操作,比如单击鼠标或者输入字符,称为用户事件

程序对这些用户事件做出响应,称为事件处理。

 

二、事件处理模型

1.事件类型——侦听程序接口

系统将这些用户事件分类,分成各种事件类型

系统为每个事件类型提供了一个侦听程序接口,接口包含的方法,规定了接受并处理该类事件的规范。

 

2.侦听程序接口——事件侦听程序

为了接收并处理某个事件类型,组件必须注册相应的事件处理程序,称为事件侦听程序(Listener,也称为侦听器)

 

Listener的构造条件有两个:

一是必须实现对应事件类型的侦听程序接口,

二是需要实现接口中规定的响应事件的方法。

 例如,为了处理按钮上的ActionEvent事件,需要定义一个实现ActionListener接口的侦听程序类。

public interface ActionListener extends EventListener{

  public void actionPerformed(ActionEvent e);

}

该接口中只定义了一个方法actionPerformed(),当出现ActionEvent事件时,就会调用该方法。

actionPerformed(),是一个回调函数。即被系统调用的函数。

直调回调的差别在于,调用主体是不是第一人称的程序体。actionPerformed()是预先设定的函数,但是设定当时并没有被调用,而是等待ActionEvent发生时候,由系统来把这种行为作为参数,调用这个函数。

btw,系统调用这些回调的方法是轮询,即用轮询的方式在线程池队列中查找侦听这个系统事件的回调函数。

 

我们回到这个侦听事件类。每个组件都有若干个形如addXXXListener(XXXListener)的方法,通过这类方法,可以为组件注册事件侦听程序。

这种处理事件机制称为委托事件处理机制

概括地说,事件被直接送往产生这个事件的组件,组件需要注册一个或多个侦听程序。侦听程序的类中包含了事件处理程序,接收和处理这个事件。事件是一个对象,它只向注册的侦听程序报告。

 

三、GUI事件处理步骤

1.程序中引入java.awt.event包

import java.awt.event.

2.给所需的事件源对象注册侦听事件程序。

事件源对象.addXXXListener(XXXListener);

3.实现相应的方法。如果侦听程序接口包含多个方法,必须实现所有方法。

 

事件的侦听程序可以定义在一个单独的类中,也可以定义在组件类中。

 

转载于:https://www.cnblogs.com/mithrandirw/p/8683177.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值