Java事件处理机制和适配器_监视器和适配器的关系与作用-程序员宅基地

技术标签: 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中的方法
        //处理时间代码
   }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tuke_tuke/article/details/46984639

智能推荐

python 自定义日历控件开发_self.configure(style='datepicker')-程序员宅基地

文章浏览阅读924次。学习python期间,发现 tkinter没有自带的日期选择控件。决定自己的写一个日期控件,费尽周转,终于写了一个自己满意的日期控件。本着人人为我,我为人人的原则,欢迎大家转发,评论,及提出宝贵的建议和意见。严重反感复制别人作品来获取下载积分和关注等行为。1.创建一个自定义DatePicker类,实现下拉日期选择。_self.configure(style='datepicker')

IntelliJ IDEA中配置Tomcat_idea配置tomcat-程序员宅基地

文章浏览阅读605次,点赞13次,收藏10次。InteliJ IDEA 配置Tomcat服务器_idea配置tomcat

python入门指南txt-【杂谈】爬虫基础与快速入门指南-程序员宅基地

文章浏览阅读168次。今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。作者 | 言有三编辑 | 言有三1 前端网页基础在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。1.网页构成通常来说网页由三部分组成,分..._python入门指南 小说 txt

已解决java.lang.NullPointerException异常的正确解决方法,亲测有效!!!_tinyumbrella安装java.lang.nullpointerexception-程序员宅基地

文章浏览阅读5.3w次,点赞22次,收藏20次。在Java编程中NullPointerException是最常见的运行时异常之一,这种异常在我们访问一个空引用变量中的字段、方法或者对象时会触发。_tinyumbrella安装java.lang.nullpointerexception

如何为微信小程序添加微信支付和小程序支付功能-程序员宅基地

文章浏览阅读120次。获取微信支付相关信息 审核通过后,可以获取到一些重要的信息,包括商户号(mch_id)、密钥(key)、AppID(appid)、AppSecret(appsecret)等。处理支付回调 在用户支付成功后,微信会将支付结果通知到一个指定的URL中。我们需要在自己的服务器上处理这个支付结果,以便更新订单状态等。注册微信商户号 首先,需要在微信支付平台上注册一个微信商户号。生成签名 在发起支付请求之前,需要对请求参数进行签名。在实际的开发中,需要根据自己的业务需求进行参数的设置和处理。

LiteOS内核教程04 | 信号量(用于任务间同步)_信号量如何控制任务间的同步关系-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏4次。本文首发于公众号『mculover666』,在学习本教程的过程中,可以登录华为云论坛小熊派板块进行发帖交流!1. LiteOS内核的信号量1.1.信号量在多任务操作系统中,不同的任务之间需要同步运行,信号量功能可以为用户提供这方面的支持。信号量(Semaphore)是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。1.2. 信号量的使用方式信号量可以被任务获取或者申请..._信号量如何控制任务间的同步关系

随便推点

Kubernetes之network: failed to set bridge addr: “cni0“ already has an IP address different from xxx问题_network: failed to set bridge addr: "cni0" already-程序员宅基地

文章浏览阅读818次,点赞2次,收藏3次。1 问题在使用Kubernetes部署应用时发现有Pod一直不能创建成功,使用kubectl describe pods <pod-name> -n <namespace>得到的结果如下图:从上面的截图中看到,问题出现在给Pod分配IP上,意思是cni0的IP不同于10.244.5.1/24,下面我们进入到knode1中使用ifconfig命令查看IP信息,结果如下:从上图中我们可以看到flannel.1的IP为10.244.5.0,然后使用cat /run/fl_network: failed to set bridge addr: "cni0" already has an ip address differe

Kubernetes 服务发布方式(蓝绿发布、灰度发布和滚动发布)-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏10次。应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布,目的是尽可能避免因发布导致的流量丢失或服务不可用问题。_蓝绿发布

西瓜视频 iOS 播放器技术重构-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏8次。动手点关注干货不迷路????播放器简介播放器是西瓜视频等视频类 App 最主要的业务场景,也是最主要的流量入口,其承载包括下层基础播放,上层的各种播放业务:状态栏、弹幕、音量、亮度、评论、点赞、进度、倍速、清晰度、选集、合集、商业化等。西瓜对整个业务播放器做了整体抽象,提供了一套可插拔,可复用的播放器业务框架,包括:视频播放、播控交互、业务拓展。本文播放器是指业务播放器,主..._视频播放软件架构

前端模拟列表的数组数据进行筛选_微信h5页面列表前端按列筛选-程序员宅基地

文章浏览阅读279次。前端模拟列表的数组数据进行筛选_微信h5页面列表前端按列筛选

重庆成人自考本科学校重要吗?-程序员宅基地

文章浏览阅读188次。自考选择主考院校一定要弄清楚报考院校毕业的规定,学士学位的规定。有些报考院校会有额外的规定,比如毕业论文优良,或者高于中等水平的平均成绩。

[FAQ21281]android P分区表中odmdtbo与dtbo分区的说明-程序员宅基地

文章浏览阅读552次。1. 对于需要OTA(O to P)升级到P版本的Project,分区layout必须与O版本完全一致,因此,请配置。虽然android P分区表中可以同时看到odmdtbo与dtbo分区,但实际上,ptgen在build生成的。Android O版本odmdtbo.img,在Android P版本改名成dtbo.img。此时build会生成odmdtbo.img,对应下载到odmdtbo分区。此时build会生成dtbo.img,对应下载到dtbo分区。_odmdtbo

推荐文章

热门文章

相关标签