网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 其它技术 > java的事件处理  

java的事件处理

2004-05-14  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  在JAVA程序设计中,事件的处理是非常重要的,尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。
  
  下面用一个演示性的例子来说明事件及其处理过程
  
  一.事件的组成
  如果想要自定义一个事件,则必须提供一个事件的监听接口以及一个事件类。在JAVA中监听接口继承java.util.EventListener,事件类继承java.util.EventObject.很多基本的事件在编程环境中都已经提供可以很方便使用,但是在自定义事件中必须要要了解这些。
  
  下面是一个事件类的代码,事件类可以向用户处理程序提供被监听类的信息
  import java.util.*;
  public class PropertyEvent extends EventObject {
  public PropertyEvent(){}
  }
  
  下面是监听接口的代码
  import java.util.*;
  
  public interface PropertyListener extends EventListener {
  public void propertyChanged(PropertyEvent propertyEvent);
  }
  
  二.事件的处理机制
  下面是一段简要的被监听类代码,通过代码分析事件处理过程
  import java.util.*;

网管联盟bitsCN@com


  
  public class Exam {
  private int property;
  //listeners用来存放已注册的监听对象
  private Set listeners= new HashSet();
  .....
  public void addListener(PropertyListener propertyListener){
  //listeners必须保证只能被一个线程访问
  synchronized(listeners){
  listeners.add(propertyListener);
  }
  }
  public void firePropertyChange(){
  Iterator iterator;
  synchronized(listeners){
  //将listeners中的类名放到iterator
  iterator = new HashSet(listeners).iterator();
  }
  
  //创建事件类
  PropertyEvent propertyEvent = new PropertyEvent();
  while(iterator.hasNext()){
  PropertyListener propertyListener = (propertyListener) iterator.next();
  //调用用户的事件处理程序
  propertyListener.propertyChanged(propertyEvent);
  }
  }
  }
  
  当属性值发生变化时,首先进行内部处理调用firePropertyChange方法,产生一个事件对象然后用事件对象为参数来调用用户的事件处理程序。
网管u家u.bitscn@com

  
  三.事件处理的使用
  1.基本用法
  public Exam exam;
  exam.addListener(this);
  public void propertyChange(PropertyEvent event){...}
  
  注:exam是被监听对象,this为监听对象,是已经实现了接口方法的当前类,addListener
  将当前类注册到listeners.
  
  2.一个被监听对象可以有多个监听对象
  
  exam.addListener(listener1);
  exam.addListener(listener2);
  这样当exam的property发生变化时,actionListener1和actionListener2的处理程序都会
  被调用。当然listener1和listener2必须都是已实现接口方法的类。
  
  3.被监听的对象也可以是实现了方法的接口
  exam.addListener(
  new PropertyListener(){
  //用户定义事件处理过程
  public void propertyChange(PropertyEvent event){
  ...
  }
  ); 

TAGs处理   事件   监听   对象   接口   方法   exam.addListener    
 上一篇:Java理论与实践:垃圾收集简史   下一篇:Java语法规则
相关文章列表
java的事件处理 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.JACOB配置方法及两个常见错误解决
2.用java api进行sort
3.Java中this、super用法简谈
4.Class文件详解 (2)
5.Apache目录服务器中存储Java对象
6.Java 操作二维数组实例
7.Lucene 索引文件格式的规格定义
8.英文打字练习
9.Java如何共享资源
10.editplus能够编译java嘛? 如何设置
最新推荐文章:
1.J2SE实现windows读取网卡的物理地址
2.使用Jetty和DWR创建伸缩性Comet程序
3.经验分享:我的20天项目经历
4.实现Java跨平台运行的十二个注意事项
5.成功的必要条件:开源思想推动创新
6.100行Java代码构建一个线程池
7.用Stripes做Java Web开发
8.j2me创意--Wap浏览器的源代码
9.使用Hashtable对字符串进行碰撞
10.定制 bugzilla 进行项目管理
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的