Java事件处理机制和适配器全面解析

 更新时间:2021年12月04日 11:17:25   作者:tuke_tuke  
这篇文章主要介绍了Java事件处理机制和适配器全面解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java事件处理机制和适配器

最重要的是理解事件源监视器处理事件的接口的概念。

1.事件源:是能够产生时间的对象都可以叫事件源,比如文本框,按钮,下拉列表之类的组件。

2.监视器:事件源要产生事件,必须要有什么东西去监视它,以便作出相应啊,那就是监视器,监视器的作用是对事件源进行监视,以便对发生的时间进行处理。

事件源通过相应的方法注册自己的监听器。比如addListener(监听器);

3.处理事件的接口:监视器负责处理事件源发生的事件,监视器是一个对象,为了处理事件源发生的事件,监视器这个对象会自动调用一个方法来处理事件。被调用的这个方法就是所说的处理事件的接口中的方法。

java规定监视器这个对象的类必须声明实现相应的接口, 即必须在类体重重写接口中的所有方法,当事件源发生事件事件时,监视器就会自动调用被类重写的接口方法。

处理事件示意图

这里写图片描述

java常用的监听接口

这里写图片描述

此外还有MouseMotionListener,MouseWheelListener,WindowFocusListener, WindowStateListener,监听接口。

有时候监听接口中有很多抽象方法,在实现接口的时候,需要重写所有的方法,但是我们经常只会用到其中的一个或两个,这无疑是一种劳累,多余。

于是就有了适配器类,出于简化的目的,每个还有多个方法的的监听器接口都配有一个适配器类,这个类实现了接口中的所有方法,但是每个方法没有做任何事情。

比如:

FocusAdapter,KeyAdapter,MouseAdapter,MouseMotionAdapter, WindowAdapter.

这就提供另一种方法,就是继承适配器类,重写其中的需要使用的方法,不必重写全部的方法,简单方便。

class A extends WindowAdapter{
   pubilc void windowClosing(WinwEvent e){//重写WindowAdapter中的方法
        //处理时间代码
   }
}

Java事件适配器的作用

适配器

其实从接口事件演变尔来的。相当于触发器,说简单点,它就是一些动作 。

例如说 鼠标的按下 点击 还有键盘 等等。 适配器 就是实现 接口事件的类 不过 ,不是真的实现 ,只是空实现 ,没有具体的方法体。 适配器主要是为了方便程序员操作 ,避免了代码的重复性。只要一个对象或者属性添加了这个适配器, 那么它就会监视这对象或属性 。例如说一个按纽。

按纽添加一个MouseAdapter适配器, 并重写里面的mouseClicked(MouseEvent e)方法。

public void mouseClicked(MouseEvent e) 
{
System.out.println("你点击了鼠标");
} 

当你点击按纽时 后台就是打印 “你点击了鼠标”. 再说明白点 就相当你给按纽 添加了一个鼠标对象。 你通过 鼠标 就可以 产生对应的动作!

MouseAdapter实现了MouseListener,MouseWheelListener,MouseMotionListener接口,而方法都是为空,你可以重写mouseClicked(MouseEvent e) 方法从而响应鼠标按键在组件上单击事件,重写mouseDragged(MouseEvent e)方法从而响应鼠标按键在组件上按下并拖动事件等等。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Spring配置及事务的使用

    详解Spring配置及事务的使用

    这篇文章主要介绍了详解Spring配置及事务的使用,文中附含详细的示例代码说明,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • 一文详解如何通过Java实现SSL交互功能

    一文详解如何通过Java实现SSL交互功能

    这篇文章主要为大家详细介绍了如何通过Java实现SSL交互功能,文中的示例代码讲解详细,对我们的学习或工作有一定的帮助,需要的可以参考一下
    2023-04-04
  • SpringBoot2.3集成ELK7.1.0的示例代码

    SpringBoot2.3集成ELK7.1.0的示例代码

    这篇文章主要介绍了SpringBoot2.3集成ELK7.1.0的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • SpringBoot实现自定义Starter的步骤详解

    SpringBoot实现自定义Starter的步骤详解

    在SpringBoot中,Starter是一种特殊的依赖,它可以帮助我们快速地集成一些常用的功能,例如数据库连接、消息队列、Web框架等。在本文中,我们将介绍如何使用Spring Boot实现自定义Starter,需要的朋友可以参考下
    2023-06-06
  • Windows下apache ant安装、环境变量配置教程

    Windows下apache ant安装、环境变量配置教程

    这篇文章主要介绍了Windows下apache ant安装、环境变量配置教程,ANT的安装很简单,本文同时讲解了验证安装是否成功的方法和使用方法实例,需要的朋友可以参考下
    2015-06-06
  • SpringMVC使用@PathVariable接收参数过程解析

    SpringMVC使用@PathVariable接收参数过程解析

    这篇文章主要介绍了SpringMVC使用@PathVariable接收参数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • java使用正则表达校验手机号码示例(手机号码正则)

    java使用正则表达校验手机号码示例(手机号码正则)

    这篇文章主要介绍了java使用正则表达校验手机号码示例,可校验三个号码段:13*、15*、18*,大家根据自己的需要增加自己的号码段就可以了
    2014-03-03
  • Java 如何解决跨域问题

    Java 如何解决跨域问题

    这篇文章主要介绍了Java 如何解决跨域问题,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java树形菜单的创建

    Java树形菜单的创建

    这篇文章主要为大家详细介绍了Java图形用户界面中树形菜单的创建树形菜单的创建,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • 详解Java中的final关键字

    详解Java中的final关键字

    这篇文章主要给大家介绍了关于Java中final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06

最新评论