物体发出------分发事件--------》自身---------发出处理事件------》监听器

第一步:物体可以安装不同种类的监听器,这样可以处理不同类型的消息。
通过组装的方式:
class ObjcetClass{
    ListenerInterface001 listener1;(在Swing中实际上是一个二叉树。)
    ListenerInterface002 listener2;
    ListenerInterface003 listener3;  
}
第二步:构造监听器,通过实现:
class Listener1 implements ListenerInterface001 {
}
class Listener2 implements ListenerInterface002{
}
class Listener3 implements ListenerInterface003{
}
第三步:将监听器安装到物体上(或者通过ADD接口):
listener1=new Listener1();
listener2=new Listener2();
listener3=new Listener3();
第四步:
不同的事件映射为不同的监听器的实现,通过switch语句:
event1-->listener1
event2-->listener2
event3-->listener3

注意:以上步骤中,监听器的实现优为重要。
因为监听器要访问发出事件的物体本身,因此,经常利用匿名类。

监听者模式理解(Swing)相关推荐

  1. java 监听者模式有啥用,监听者模式在系统中的应用 —— 事件总线

    监听者模式 是一种比较常见的设计模式. 在日常的开发中,我们所使用的 事件 就是一种符合 监听者模式 的功能. 对 监听者模式 还不太明白的同学可以通过 WinForm 开发来理解这一概念. 在 Wi ...

  2. 监听者模式 java_java监听者模式

    1.原理: 当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法. 例如:创建一个"人"类Class Person 人拥有吃的方法public void eat(){} ...

  3. 【转】第01课:生活中的监听模式——一坑爹的热水器

    用程序来模拟生活 从剧情中思考监听模式 监听模式 监听模式的模型抽象 代码框架 类图 基于框架的实现 模型说明 设计要点 推模型和拉模型 应用场景 [故事剧情] 刚刚大学毕业的 Tony 只身来到北京 ...

  4. 软件设计模式——监听模式

    摘要 本博文主要是介绍监听模式的原理和应用场景. 案例介绍 庄小焱毕业后留在了的城市,开始了沪漂的生活.但刚刚毕业的他身无绝技.包无分文,为了生活只能住在高桥镇的小村庄,每天坐着程序员专线(10号线) ...

  5. 设计模式之观察者模式(监听模式)

    目录 前言 UML类图 观察者模式的设计要点及应用场景 观察者模式的应用 其他 前言         观察者模式也称作监听模式,即观察与被观察的关系,比如你在烧开水时看它有没有开,你就是观察者,水就是 ...

  6. 第01课:生活中的监听模式——一坑爹的热水器

    用程序来模拟生活 从剧情中思考监听模式 监听模式 监听模式的模型抽象 代码框架 类图 基于框架的实现 模型说明 设计要点 推模型和拉模型 应用场景 [故事剧情] 刚刚大学毕业的 Tony 只身来到北京 ...

  7. JMS调用IBM MQ监听模式

    最近几天一直纠结于监听模式.在监听模式下遇到了两个问题. 1.消息接收者不关闭竟然收不到消息. 2.在监听模式下,每次只收一条消息,即使设定了监听,也是只收到一条消息 今天就针对这两个问题作出解答. ...

  8. 1.设计模式中监听模式(观察者模式)(Python实现)

    目录 1.什么是监听模式 2.监听模式设计思想 3.监听模式的框架模型 4.分别用框架模型和不用框架模型来解决下面的例子 5.模型说明 6.监听模式根据侧重可以分为推模型和拉模型 7.账号异常登录检测 ...

  9. java的actionlistener_「actionlistener」Java——事件处理机制监听者基础(一)动作监听ActionListener - seo实验室...

    actionlistener 介绍: actionlistener是一个接口,ActionEvent通常在点击一个按钮或双击某个列表项或选中某个菜单时发生. 如何设置监听: 对监听者添加ActionL ...

最新文章

  1. 深入浅出Android系统启动流程
  2. [周年感悟]看软件项目中的四种角色
  3. ARP的超时重新请求
  4. PL/SQL Developer连接本地Oracle 11g 64位数据库和快捷键设置
  5. JMeter正则表达式-学习(3)
  6. C#中的bitmap类和图像像素值获取方法
  7. I帧、B帧和P帧的特点和编码的基本流程
  8. 面试官Diss我能力不如工作3年
  9. 根号x_【深情攻X自卑受】糖与盐by根号三
  10. python3 float最大值_Python3(3) Python 函数
  11. Android Wi-Fi subsystem_ramdump简介(以QCOM为Base)
  12. 基于OMAPL138/C6748 + SPARTAN-6 77GHz汽车防撞雷达信号处理平台设计
  13. php的网页服务器根目录,php获得网站根目录的几个方法
  14. 电商网站对服务器配置有什么要求?
  15. oracle显示连接超时,Oracle 12179:tns:连接超时的问题
  16. Python办公——三行代码拆分表格
  17. 手机端的日期选择的插件
  18. grep -e 和 grep -E 的区别是什么?
  19. pytorch apex +ddp 分布式训练+数据优化
  20. scilab 求微分_定积分的scilab程序

热门文章

  1. mysql 分区指定路径_[数据库]MySQL 指定各分区路径
  2. 大江论坛服务器维护,Kangle“多节点服务器扩展”功能的详细介绍
  3. 虚拟化文件服务器,VMware虚拟化效率之文件服务器性能测试(上)
  4. vex机器人比赛 一队人数_VEX世锦赛中国区总决赛在渝闭幕 重庆晚报记者带你了解VEX机器人的那些事...
  5. java socket中属性详解_前端开发:关于Vue组件中的data属性值是函数而不是对象的详解...
  6. 【Interfacenavigation】XML中的字体(27)
  7. MySQL 表中添加 时间戳 字段
  8. Advanced Auto Layout:Programmatically Creating Constraints
  9. linux 下 php 安装 Gearman
  10. 第19课:Spark高级排序彻底解密