java语法——使用事件适配器

适配器模式详解(Java) 适配器模式是一种结构型设计模式,主要目的是将一个类的接口转换为客户期望的另一个接口。这种模式使得原本因为接口不匹配而不能一起工作的类可以一起工作,从而提高了类的复用性。适配器模式分为类适配器和对象适配器两种类型。类适配器使用继承关系来实现,而对象适配器则使用组合关系。适配器模式的核心在于解决接口不兼容的问题。在软件系统中,随着应用环境的变化,常常需要将一些现存的对象放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 阅读详情

 适配器模式 

解决的问题:接口中规定了所有要实现的方法 ;但一个要继承此接口的具体类,只用到了其中的几个方法,而其它的方法都是没有用的。  

共有两类适配器模式:

对象适配器模式

  -- 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。

类适配器模式

  -- 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。

关于JAVA适配器的解释

  将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不 兼容而不能一起工作的那些类可以一起工作。—— Gang of Four

基本概念

  客户:需要调用我们的代码的对象。
  Adapter模式的宗旨:保留现有类所提供的服务,向客户提供接口,以满足客户的期望。

主要内容

  (1)类适配器:
  当客户在接口中定义了他期望的行为时,我们就可以应用适配器模式,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配。
  下面是类适配器的UML图:
  (2)对象适配器:
  对象适配器”通过组合除了满足“用户期待接口”还降低了代码间的不良耦合。在工作中推荐使用“对象适配”。下面是对象适配器的UML图:
  (3) 缺省适配器模式:
  缺省适配器模式是一种特殊的适配器模式,但这个适配器是由一个抽象类实现的,并且在抽象类中要实现目标接口中所规定的所有方法,但很多方法的实现都是“平庸”的实现,也就是说,这些方法都是空方法。而具体的子类都要继承此抽象类。

适用情况

   使用的前提:
  1.接口中规定了所有要实现的方法
  2.但一个要继承此接口的具体类,只用到了其中的几个方法,而其它的方法都是没有用的。

实现方法

  1.用一个抽象类继承已有的接口,并实现接口中所规定的所有方法,这些方法的实现可以都是“平庸”实现----空方法;但此类中的方法是具体的方法,而不是抽象方法,否则的话,在具体的子类中仍要实现所有的方法,这就失去了适配器本来的作用。
  2.原本要继承接口的子类,只继承1中的抽象类即可,并在其内部实现时,只对其感兴趣的方法进行实现。

注意事项

  1.充当适配器角色的类就是:继承已有接口的抽象类
  2.为什么要用抽象类:
  此类是不要被实例化的。而只充当适配器的角色,也就为其子类提供了一个共同的接口,但其子类又可以将精力只集中在其感兴趣的地方。

适配器模式解析

  你想使用一个已经存在的适配器模式,而他的接口不符合你的需求。你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作。你想使用一些已经已经存在的子类,但是不可能对每一个都进行子类化已一匹配他们的接口,对象适配器可以适配他的父类接口。 适配器如同一个常见的变压器,也如同电脑的变压器和插线板之间的电源连接线,他们虽然都是3相的,但是电脑后面的插孔却不能直接插到插线板上。 作者曾经遇到过一个ASP编程的难题,asp不是面向对象的,但是却可以借鉴适配器模式解决问题。问题是这样的,在一个产品表(product)中的所有产品都有一个编号,字段名字是bh,每个编号是唯一的,但却不是主键,表中使用一个自动增长的id作为主键。在产品的详情页中使用传过来的参数id查询产品,而在另外的一个系统中也有一个同样的表,需要访问详情页(已经由另外的一个程序员设计好,并且代码晦涩难懂),由于字段值是自动增长的,两个表中的主键并不对应(在其中的一个系统中进行删除添加都会引起id的增长),在具体的实现中,本人在有详情页的系统中添加了一个页面(adapter),接受传过来的产品编号bh,然后根据编号查找数据库得到相应产品的驻键id,最后让页面跳转到详情页并传递一个id,在另外的系统中只要得到产品的编号bh,并把bh作为参数传递到添加的页面(adapter)便可以得到正确的结果。

eg:

class WindowExit implements WindowListener{

  @Override
  public void windowActivated(WindowEvent e) {}

  @Override
  public void windowClosed(WindowEvent e) {}

  @Override
  public void windowClosing(WindowEvent e) {
   System.exit(0);
  }

  @Override
  public void windowDeactivated(WindowEvent e) {}

  @Override
  public void windowDeiconified(WindowEvent e) {}

  @Override
  public void windowIconified(WindowEvent e) {}

  @Override
  public void windowOpened(WindowEvent e) {}
  
 }

使用适配器模式:

class WindowExit1 extends WindowAdapter{
  public void WindowClosing(WindowEvent e){
   System.exit(0);
  }
 }
 使用匿名内部类更加简单
 f.addWindowListener(new WindowAdapter(){
  public void WindowClosing(WindowEvent e){
   System.exit(0);
  }
 });

 

java事件 适配器实现鼠标事件 实例代码 java事件 适配器实现鼠标事件 实例代码java事件 适配器实现鼠标事件 实例代码 立即下载

相关推荐

ArcGIS Pro新手避坑:从OpenStreetMap导入路网到创建拓扑关系全流程

本文详细解析了ArcGIS Pro中从OpenStreetMap导入路网数据到创建拓扑关系的全流程,涵盖OSM数据特性、几何完整性检查、属性强化及拓扑关系构建等关键步骤。特别针对路网数据预处理、网络数据集配置和常见问题提供了实用解决方案,帮助GIS新手高效完成网络分析任务。

weixin_33670786的博客 514

java事件适配器_java事件适配器Adapter

首先,java中一个类只能直接继承自一个类,接口却可以实现多个。如果一个类implements了一个MouseListner,那么就要在该类中实现所有的MouseListner中的抽象方法,但有很多抽象方法时而只需要使用个别的时候就会出现问题。所以adapter就解决了这个问题。adapter(适配器)的种类:ComponentAdapterContainerAdapterFocusAdapter...

weixin_39641334的博客 523

分享通达信破解交易接口的使用!

那其实通达信破解交易接口的使用方法比较复杂,这里以MA均线指标为例子,只要理解了这些操作步骤,就可以很容易地使用其他指标包括自己编写的指标来进行交易。委托结果(包含委托编号), 需要分配 1024*1024 字节的空间。委托结果数组, 每项结果需要分配 1024*1024 字节的空间。0: 买入, 1: 卖出, 2: 融资买入, 3: 融券卖出,4: (市价委托)上海五档即成剩撤, 深圳五档即成剩撤。4: 买券还券, 5: 卖券还款, 6: 现券还券。0: 上海限价委托, 深圳限价委托。

1841085904的博客 2363

(转帖)JAVA---事件适配器----用内部类,匿名类实现事件处理

www.cnblogs.com/jssy/archive/2006/03/11/347865.html 1.事件适配器--EventAdapter   下例中采用了鼠标适配器:   import java.awt.*;   import java.awt.event.*;   public class MouseClickHandler extends MouseAdaper{     publ...

zzg810314 458

一文了解向量数据库在RAG中扮演的角色

向量数据库:AI新纪元的基石。探索如何通过这一创新技术优化RAG,提高语言模型的信息处理能力

2401_82452722的博客 2455

创客学院嵌入式驱动开发——学习资料汇总

1.创客学院知识巩固-01C语言回顾_C/C++_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431050 2.创客学院知识巩固-02数据结构_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431087 3.创客学院知...

snaking616 5118

java事件适配器_java 事件适配器

java 事件适配器.事件适配器,为一些Listener接口提供了适配器(Adapter)类通过继承事件所对应的Adapter类,只需重写需要的方法提供了一种简单的实现监听器的手段,可以缩短程序代码由于java的单一继承机制,当需要多种监听器或此类已有父类时,就无法采用事件适配器了事件适配器——EventAdapter,下例中采用了鼠标适配器:import java.awt.*;import ja...

weixin_35902800的博客 1672

(2024,DDPM,DDIM,流匹配,SDE,ODE)扩散:基础教程

本文的目标是尽可能简单地教授扩散。第一节介绍扩散的基本原理。第二节和第三节展示如何构建随机和确定性扩散采样器。第四部分介绍了密切相关的流匹配,可看作是扩散的推广。​第五节,强调实践中最重要的一些设计选择,包括采样器、噪声时间表和参数化方法。

qq_44681809的博客 1万+

Java事件适配器的使用简单讲解

Java事件适配器的简单使用教程

MsXintu的博客 1051

深入解析AUTOSAR中IIC的MCAL实现与Vector配置实践

本文深入解析AUTOSAR架构中IIC总线的MCAL实现与Vector配置实践,探讨IIC在汽车电子中的特殊定位及Vector的折中方案。通过Channel与Sequence设计模式、Chain特性应用及DaVinci Configurator配置步骤,提供IIC驱动的优化与安全实现方法,助力开发者高效解决车载通信问题。

weixin_29172963的博客 407

OpenCV 直线的表示与 LineIterator 编程

其中,LineIterator 是 OpenCV 中用于处理直线的一个功能强大的类。然后,我们定义了直线的起点和终点,这里起点是 (50, 50),终点是 (250, 250)。接下来,我们使用 LineIterator 类创建了一个迭代器 line_iterator,用于遍历直线上的像素。在循环中,我们将直线上的像素设置为白色,即将像素的值设置为 255。通过使用 LineIterator,您可以轻松地迭代直线上的像素,并进行相应的处理。它可以帮助我们获取直线上的所有像素,并进行相应的处理。

DevSavantX的博客 504

Java AWT事件适配器

事件适配器是监听器接口的空实现——事件适配器实现了监听器接口,并为该接口里的每个方法都提供了实现,这种实现是一种空实现(方法体内没有任何代码的实现)。当需要创建监听器时,可以通过继承事件适配器,而不是实现监听器接口。因为事件适配器已经为监听器接口的每个方法提供了空实现,所以程序自己的监听器无需实现监听器接口里的每个方法,只需要重写自己感兴趣的方法,从而可以简化事件监听器的实现类代码。 如果某个监

moncheri78的专栏 1417

构建 Skill 的完整指南

Skill开发指南摘要 Skill是用于定制Claude AI行为的指令包,包含SKILL.md主文件及可选脚本、参考文档和资源。本文提供了完整的Skill开发指南: 核心概念 三层渐进式披露结构(元数据/主指令/参考文档) 支持独立工作流和MCP集成 跨平台兼容性(Claude.ai/ClaudeCode/API) 开发流程 规划:明确2-3个具体用例 结构要求:kebab-case命名、必备YAML元数据 编写规范:清晰触发条件、分步指令、错误处理 典型应用模式 • 文档生成(类别1) • 工作流自动化

wjianwei666的专栏 303

深入浅出:事件监听中的适配器模式

如果我们只关心其中的一个方法(例如,鼠标点击事件),实现完整的接口就显得过于冗长和繁琐。为了避免实现那些我们不需要的方法,适配器模式提供了一个抽象的适配器类,允许我们只重写我们感兴趣的方法,而不必实现接口的所有方法。:适配器模式允许我们只实现感兴趣的方法,避免了必须实现所有方法的冗余代码。:在实现接口时,我们只会关注需要的部分,其他部分通过适配器的空实现处理,代码更具可读性。等,它们为每个接口提供了默认的空实现,允许我们根据需要只覆盖感兴趣的方法。:提供接口的默认空实现,避免强制要求实现接口的所有方法。

2302_79376097的博客 2091

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java 没有事件适配器的监听器_Java中的应用-AWT事件适配器

第一层是EventListener顶层事件接口类,它只是定义了一个接口,没有包含任何接口函数。第二层是AWT的事件监听器接口(以Listener为结尾),每一个监听器接口对应一种窗口事件,其中定义了多个事件处理函数。第三层是AWT的事件适配器抽象类(以Adapter为结尾),它们分别为对应的监听器接口提供了默认的函数实现。目的,这一特性特别适合于Java AWT中的事件处理模式。对于定义的事件监听...

weixin_39939276的博客 1604

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

剖析知识点:Java事件适配器类与事件监听器接口的细节问题

知识点背景:知识属于Java —— Swing图形用户界面设计 —— 事件处理机制 下图为事件处理机制简图:

w_jxddehhh的博客 2453

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java鼠标监听器适配器_Java GUI:事件监听器 和 事件适配器 | 学步园

/*事件监听器:一个事件监听器对象负责处理一类事件一类事件的每一种发生情况,分别由事件监听器对象中的一个方法来具体处理.在事件源和事件监听器对象中进行约定的接口类,被成为事件监听器接口.事件监听器接口类的名称与事件类的名称是相对应的,例如MouseEvent事件类的监听器接口名为MouseListener.处理发生在某个GUI组件上的XXXEvent事件的某种情况,其事件处理的通用编写流程:编写一...

weixin_39800957的博客 633

Java 事件适配器

事件适配器 为简化程序员的编程负担,JDK中针对大多数事件监听器接口提供了相应的实现类(事件适配器Adapter),在适配器中,实现了相应监听器接口的所有方法,但不做任何处理,即只是添加了一个空的方法体。 WindowAdapter适配器的定义: package java.awt.event; public abstract class WindowAdapterimplements Wi...

jeanboy 3354

java笔记 窗口事件 和 适配器

一.窗口事件 之前有过例子 setDefaultCloseOperation(EXIT_ON_CLOSE); // 点击x关闭窗口 这个函数的参数还有 DO_NOTHING_ON_CLOSE 什么也不做 HIDE_ON_CLOSE 隐藏当前窗口 DISPOSE_ON_CLOSE 隐藏当前窗口并释放窗口资源 EXIT_ON_CLOSE 结束窗口所在的应用程序 但这四种不能满足需求 如果在关闭的时候需要保存就不能用这个了 接口WindoListener 方法 windowActivated( WindowEv

yogur_father的博客 447

java事件适配器_Java 事件适配器 Adapter

packagecom.learnjava.awt;importjava.awt.BorderLayout;importjava.awt.Button;importjava.awt.Frame;importjava.awt.Label;importjava.awt.TextField;importjava.awt.event.ActionEvent;importjava.awt.event.Acti...

weixin_28775337的博客 397

JavaSwing | EventAdapter 事件适配器

一、背景 在事件处理模型中,实现一个监听器需要重写对应的监听器接口的所有方法,而有的监听器接口定义了很多方法。而如果你只需要其中一个的话,就会有累赘了。 比如说WindowListener接口有7个方法,而你可能仅仅只需要一个,那么代码会是这样: 二、引入事件适配器 事件适配器:实现某一特定接口的所有方法,只不过方法全都重写为空。定义适配器是为了简化事件处理的代码量。这时只需要继承一个事件类,覆...

weixin_43787043的博客 673

java_事件适配器

事件适配器是监听器接口的空实现;事件适配器实现了监听器接口, 并为接口的每个方法都提供了空的实现,方法体内没有具体的代码。 当需要创建监听器的时候,可以通过继承适配器,而不是实现监听器接口。 因为适配器已经空实现了监听器接口中所有的方法,因此只要重写自己想 要写的方法,从

lapeng_2011的专栏 754

JAVA---事件适配器----用内部类,匿名类实现事件处理

JAVA---事件适配器----用内部类,匿名类实现事件处理 1.事件适配器--EventAdapter  下例中采用了鼠标适配器:  importjava.awt.*;  importjava.awt.event.*;  publicclassMouseClickHandlerextendsMouseAdaper{    publicvoidmouseClic...

weixin_30670151的博客 547

JAVA事件适配器的作用

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

u012515510的专栏 2064

java 窗口适配器怎么用_Java适配器学习和窗体事件监听器的创建以及使用

什么是"适配器",可以用简单的代码做演示看的出来,适配器是事件监听接口实现类,这些类实现了相应的事件监听器接口,并为接口中所有方法定义了空实现方法,就是声明了接口中定义的所有方法,但是方法是空体的。按键事件监听器的适配器为KeyAdapter。如果我们想在软件软件中添加键盘监听器,而我们只需要实现其中的一个方法,鼠标按下时执行,那么其它的方法就不必要写出,不需要实现KeyListener类,只需要...

weixin_32349711的博客 485

java关于事件的简单介绍

Java语言对事件的处理采用的是授权事件模型。

DemoTransfer 2万+
上一篇: java语法——监听器
下一篇: d盘结构损坏无法读取,有什么办法修复????
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值