java的事件处理机制是什么模型,java提供的事件处理模型三个基本要素

  java的事件处理机制是什么模型,java提供的事件处理模型三个基本要素

  

目录

监听模式参与的角色事件、事件源、监听器之间的关系举个粒子总结

 

  

监听模式

事件模型实现了监听模式,监听模式简单来说就是事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法。

 

  

参与的角色

事件模型有三种角色参与,分别是:事件源、事件、事件监听器。

 

  事件

  事件继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,代码可以说是很简单了。

  公共类事件对象实现java.io.Serializable { /** *事件源*/受保护的瞬态对象源;公共事件对象(Object source){ if(source==null)抛出新的IllegalArgumentException( null source );this.source=source}公共对象getSource(){ return source;}公共字符串toString() { return getClass().getName()[source= source ];} }事件源

  事件源是事件发生的地方,由于事件源的某项属性或状态发生了改变,

  例如鼠标点击事件。

  事件监听器

  事件监听器实现java.util。事件监听器接口,注册在事件源上,当事件源的属性或状态改变时,取得相应的监听器调用其内部的回调方法。最简单的代码,没有之一。

  包java.util公共接口EventListener {}

  

事件、事件源、监听器之间的关系

首先产生一个事件源(EventSource),然后事件(事件对象)封装事件源信息和事件信息,事件发生,事件源注册监听器,通知监听器,监听器处理事件。

 

  

举个粒子

事件对象

 

  公共类事件对象实现java.io.Serializable { /** *事件源*/受保护的瞬态对象源;公共事件对象(Object source){ if(source==null)抛出新的IllegalArgumentException( null source );this.source=source}公共对象getSource(){ return source;}公共字符串toString() { return getClass().getName()[source= source ];} }事件对象Event继承EventObject,封装了事件源

  导入Java。util。事件对象;公众的类事件扩展事件对象{公共事件(对象源){超级(源);} }事件源,事件源注册了事件监听器

  导入Java。util。hashset导入Java。util。设置;公共类源{私有字符串名称;公共void集名称(字符串名称){ this。name=名称;} public String getName(){ return name;} private final set listener listener set=new HashSet();public void registereventlister(侦听器事件侦听器){ if(事件侦听器!=null){ listenerset。添加(事件监听器);} } public void handle(){ for(监听器事件监听器: listenerSet){ Event Event=new Event(this);eventListener .回调(事件);} } }事件监听器

  导入Java。util。事件侦听器;公共接口侦听器扩展事件侦听器{ void回调(事件e);}测试

  public class Test { public static void main(String[]args){ Source Source=new Source();source.setName(鼠标点击);系统。出去。println(来源。getname());source.registerEventListener((事件)- {//这里是处理逻辑System.out.println(鼠标事件回调被执行了- );System.out.println(当前线程名称: Thread.currentThread().getName());});来源。handle();} }执行结果

  

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行信息技术的更多内容!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: