事件适配器
为简化程序员的编程负担,JDK中针对大多数事件监听器接口提供了相应的实现类(事件适配器Adapter),在适配器中,实现了相应监听器接口的所有方法,但不做任何处理,即只是添加了一个空的方法体。
WindowAdapter适配器的定义:
package java.awt.event;
public abstract class WindowAdapterimplements WindowListener{
voidwindowClosing(WindowEvent){}
voidwindowOpened(WindowEvent e){}
voidwindowIconified(WindowEvent e){}
voidwindowDeiconified(WindowEvent e){}
voidwindowClosed(WindowEvent e){}
voidwindowActivated(WindowEvent e){}
voidwindowDeactivated(WindowEvent e){}
}
程序员在定义监听器类时就可以不再直接实现监听接口,而是继承事件适配器类,并只重写所需要的方法即可。
JDK中并没有为所有的监听器接口都提供相应的适配器类。
监听器接口
|
对应适配器
|
说明
|
MouseListener
|
MouseAdapter
|
鼠标事件适配器
|
MouseLotionListener
|
MouseMotionAdapter
|
鼠标运动事件适配器
|
WindowListener
|
WindowAdapter
|
窗口事件适配器
|
FocusListener
|
FocusAdapter
|
焦点事件适配器
|
KeyListener
|
KeyAdapter
|
键盘事件适配器
|
ComponentListener
|
ComponentAdapter
|
组件事件适配器
|
ContainerListener
|
ContainerAdapter
|
容器事件适配器
|
示例3:改进的窗口事件处理。
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
public class MyAdapter extendsWindowAdapter{
publicvoid windowClosing(WindowEvent e){
System.exit(0);
}
}
使用适配器类的优点:不用实现WindowListener接口中所有的抽象方法,需要哪个方法,重写哪个方法即可,使开发者得以解脱。
但需注意:适配器类并不能完全取代相应的监听器接口,由于Java 单继承机制的限制,如果要定义的监听器类需要同时处理两种以上的GUI事件,则只能直接实现有关的监听器接口,而无法只通过继承适配器实现。
内部类和匿名类在GUI 事件处理中的作用
内部类
在Java GUI 事件处理中,经常采用内部类来定义监听器类,这是因为监听器类中封装的业务逻辑具有非常强的针对性,通常没有重用价值。而且作为内部类的监听器对象可以直接访问外部类中的成员,这可以提供很大的便利。
示例4:在GUI 事件处理中使用内部类。
public class MyFrame extends Frame{
…
}
匿名类
addMouseMotionListener(newMouseMotionAdapter(){
publicvoid mouseDragged(MouseEvent e){
txtDisplay.setText("鼠标位置"+e.getPoint());
}
});
多重监听
由于事件源可以产生多种不同类型的事件,因而可以注册多种不同类型的监听器,但是当事件源发生了某种类型的事件时,只触发事先已就该种事件类型注册过的监听器。
事件源组件和监听器对象的对应关系:
针对同一个事件源组件的同一种事件也可以注册多个监听器。
针对同一个事件源组件的多种事件也可以注册同一个监听器对象进行处置。只是这要求监听器对象是一个“多面手”,即有能力处理各种不同类型的事件
同一个监听器对象可以被同时注册到多个不同的事件源上。
分享到:
相关推荐
【大厂面试专栏】一份Java程序员需要的技术指南,这里有面试题、系统架构、职场锦囊、主流中间件等,让你成为更牛的自己!_technology-talk
flashocc-QAT-PTQ.zip
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
CSDN海神之光上传的全部代码均可运行,亲测可用,尽我所能,为你服务; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、物理应用 仿真:导航、地震、电磁、电路、电能、机械、工业控制、水位控制、直流电机、平面电磁波、管道瞬变流、刚度计算 光学:光栅、杨氏双缝、单缝、多缝、圆孔、矩孔衍射、夫琅禾费、干涉、拉盖尔高斯、光束、光波、涡旋 定位问题:chan、taylor、RSSI、music、卡尔曼滤波UWB 气动学:弹道、气体扩散、龙格库弹道 运动学:倒立摆、泊车 天体学:卫星轨道、姿态 船舶:控制、运动 电磁学:电场分布、电偶极子、永磁同步、变压器
文件比较工具、文件夹比较工具、linux、ubuntu、linx麒麟等免费使用多日
Spire.XLS是一个基于.NET的组件,使用它我们可以创建Excel文件,编辑已有的Excel并且可以转换Excel文件.zip
文件名:Downhill Ride - Game Template 2020 LTS v1.2.3.unitypackage Downhill Ride - Game Template (2020 LTS) 是一个为 Unity 2020 LTS 版本开发的完整游戏模板,主要适用于开发极限运动或竞速类的下坡滑行游戏。这个模板专为快速原型设计和项目开发而打造,提供了关键功能和资源,帮助开发者轻松实现类似下坡竞速的游戏项目。 主要特点: 完整的游戏框架: 该模板包含基础的游戏逻辑,允许玩家通过控制角色在下坡道上滑行或骑行,避开障碍物并尽可能快速完成赛道。 物理与控制系统: 内置的物理引擎和角色控制器已经经过优化,可以实现平滑的下坡滑行体验,提供真实感十足的物理效果。 多种关卡支持: 模板支持多个关卡设计,开发者可以根据需要扩展或自定义不同难度的关卡。 UI 和交互设计: 包含基本的用户界面(UI)设计,带有主菜单、关卡选择、计分系统等功能,用户可以轻松扩展或定制这些 UI 元素。 优化的性能: 模板专为移动平台和桌面平台优化,确保良好的性能表现......
(1)课程设计项目简单描述 鉴于当今超市产品种类繁多,光靠人手动的登记已经不能满足一般商家的需求。我们编辑该程序帮助商家完成产品、商家信息的管理,包括产品、客户、供应商等相关信息的添加、修改、删除等功能。 (2)需求分析(或是任务分析) 1)产品类别信息管理:对客户的基本信息进行添加、修改和删除。 2)产品信息管理:对产品的基本信息进行添加、修改和删除。 3)供应商信息管理: 对供应商的基本信息进行添加、修改和删除。 4)订单信息管理:对订单的基本信 息进行添加、修改和删除。 5)统计报表:按选择日期期间,并按产品类别分组统 计订单金额,使用表格显示统计结果
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
Android System Webview(com.google.android.webvie) 125.0.6422.82 一般情况下设备可以从google play上更新,但是google play 中没有历史版本下载,所以在自己需要之后把资源上传
VLP超低轮廓铜箔,全球前10强生产商排名及市场份额(by QYResearch).docx
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
网鼎杯PPServ是一个Web开发集成环境,可以使用Apache,PHP,Mysql创建Web应用。_PPServ.zip
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
windows 安装包Miniconda3-py38-4.11.0-Windows-x86-64
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值