java中的委托事件

JAVA中的委托事件模型
Java自JDK1.1之后采用委托事件模型(delegation event model)。委托事件模型是进行图形用户界面设计的核心,在了解该模型之前,先介绍几个基本概念。
1、 事件
事件(event)是指一个状态的改变,或者一个活动的发生。例如,用户点击窗口关闭按钮,发生窗口关闭事件;用户单击一个按钮,产生动作事件。
2、 事件源
发生事件的组件称为事件源。例如,用户单击窗口关闭按钮是在窗口上发生的事件,所以窗口为事件源;用户单击按钮产生的动作事件是在按钮上发生的,所以按钮为事件源。
3、 事件类和事件监听器接口
Java将事件封装成事件类,并为每一个事件类定义一个事件监听器接口(listener interface),约定事件处理方法,指定产生事件时执行的操作。

4、委托事件模型

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

图片发自简书App

  处理发生在某个图形用户界面组件上的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);  //结束程序

​}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值