JAVA(学习笔记1.2)——事件处理模型

时间:2024-04-05 08:41:39

      当用户与GUI组件交互时会引发一个系统预先定义好的事件(鼠标移动,点选按钮,文本输入等),GUI由这些事件驱动。GUI事件是一个从java.awt.event.AWTEvent类扩展的某个子类对象

下图所示为java.awt.event中的事件类结构:

 

 JAVA(学习笔记1.2)——事件处理模型

一   JAVA中事件处理模型

(1)事件源:是用户交互的各种GUI组件

(2)事件对象(Eventobject):封装了事件的有关信息

(3)事件监听器(Event listener)当事件发生时被通知到接收事件的监听对象,然后调用事件监听对象中的对应方法响应该事件

一个事件监听对象是实现了系统规定的事件监听接口的类的对象,事件监听接口提供了事件处理的抽象方法的描述。JAVA系统的事件监听接口类型如下图(一个监听接口往往声明了一个以上的抽象方法,每个抽象方法对应着要处理的事件动作,由用户实现它)

 

 

二  对组件的响应和处理

当需要对组件的某种事件进行相应和处理时,程序员必须满足两个步骤:(1)为组件注册 实现规定接口的事件监听器  (2)实现事件监听器接口中声明的事件处理抽象方法

例:

JButton button=new JButton("press");//新建一个组件:当用户单击事件源(java自动生成ActionEvent事件对象,它封装了用户单击事件源发生的一些信息)

button.addActionListener(new ButtonHandler());//java自动生成ActionEvent事件对象这一事件被传递给事件源button,button通过AddActionListener()方法注册了的监听ActionEvent事件的ButtonHandler监听对象     //为button组件注册事件监听器,

class ButtonHandler implements ActionListener{//然后就调用ButtonHandler方法中的actionperformed方法实现事件处理。

public void actionPerformed (ActionEvent event)//实现事件处理的方法

 

三   ActionEvent动作事件

ActionEvent发生了组件已经定义了的动作的事件,当动作发生,组件生成该ActionEvent,该事件传递给使用组件的add.addActionListener方法注册的每一个ActionListener对象用来接收此类事件(单击,双击,选择,回车)然后再处理

ActionEvent常用方法

(1)String getActionCommand():返回引发事件动作的命令字符串(Button会返回Button标签,JTextField会返回文本)

(2)String getSource():返回引发该事件的组件对象(此方法可以区分产生动作命令的不同事件源)

 

 

相关文章