JAVA中的委托事件模型

Java自JDK1.1之后采用委托事件模型(delegation event model)。委托事件模型是进行图形用户界面设计的核心,在了解该模型之前,先介绍几个基本概念。

1、 事件

  事件(event)是指一个状态的改变,或者一个活动的发生。
  例如,用户点击窗口关闭按钮,发生窗口关闭事件;用户单击一个按钮,产生动作事件。

2、 事件源

  发生事件的组件称为事件源。
  例如,用户单击窗口关闭按钮是在窗口上发生的事件,所以窗口为事件源;用户单击按钮产生
  的动作事件是在按钮上发生的,所以按钮为事件源。

3、 事件类和事件监听器接口

  Java将事件封装成事件类,并为每一个事件类定义一个事件监听器接口(listener interface),
  约定事件处理方法,指定产生事件时执行的操作。

常用的事件类和对应的事件监听器接口如表1所示:
图片发自简书App

4、委托事件模型

​ 当我们点击窗口或按钮等组件,想让程序执行希望的操作时,需要实现该事件对应的事件监听器接口,也就是告诉程序如果发生这类事件,该怎么处理。单这样还不行,不是谁发生该事件都进行处理,要指明哪个事件源发生该事件才进行处理。因此还需要在事件源上注册该监听器对象。这样事件源和事件监听器之间就建立了联系,当事件源发生该事件时,注册在事件源上的监听器对象就能监听到该事件,从而执行事件监听器的对应方法。这就是事件委托模型,如图1所示。

在这里插入图片描述

  处理发生在某个图形用户界面组件上的XxxEvent事件的某种情况,其事件处理的通用编写流程:

  (1) 编写一个实现XxxListener接口的事件监听器类。

  (2) 在XxxListener类中的用于处理该事件情况的方法中,编写处理代码。

  (3) 调用组件的addXxxListener方法,将类XxxListener创建的实例对象注册到事件源组件上。

  举一个简单的例子,在Frame组件上添加一个Button按钮,点击Button按钮关闭窗口。
import java.awt.*;

import java.awt.event.*;

public class MyFrame implements ActionListener{

//实现ActionListener监听器接口

​Frame f;

​Button bt;public MyFrame(){

​​f=new Frame("My Frame"); //实例化窗口

​​f.setSize(400, 300);  //设置窗口大小

​​f.setLocationRelativeTo(null);

//设置窗口居中显示

​​bt=new Button("OK"); //实例化Button按钮

​​bt.addActionListener(this);

// 注册监听器对象

​​f.add(bt); //将按钮bt添加到窗口f上

​​f.setVisible(true); //设置窗口可显示}

​

​public static void main(String[] args) {

​​// TODO Auto-generated method stub

​​new MyFrame();}@Override//实现监听器接口方法public void actionPerformed(ActionEvent e) {

​​// TODO Auto-generated method stub

​​System.exit(0);  //结束程序}

}
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读