监听者模式理解(Swing)
物体发出------分发事件--------》自身---------发出处理事件------》监听器
第一步:物体可以安装不同种类的监听器,这样可以处理不同类型的消息。
通过组装的方式:
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)相关推荐
- java 监听者模式有啥用,监听者模式在系统中的应用 —— 事件总线
监听者模式 是一种比较常见的设计模式. 在日常的开发中,我们所使用的 事件 就是一种符合 监听者模式 的功能. 对 监听者模式 还不太明白的同学可以通过 WinForm 开发来理解这一概念. 在 Wi ...
- 监听者模式 java_java监听者模式
1.原理: 当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法. 例如:创建一个"人"类Class Person 人拥有吃的方法public void eat(){} ...
- 【转】第01课:生活中的监听模式——一坑爹的热水器
用程序来模拟生活 从剧情中思考监听模式 监听模式 监听模式的模型抽象 代码框架 类图 基于框架的实现 模型说明 设计要点 推模型和拉模型 应用场景 [故事剧情] 刚刚大学毕业的 Tony 只身来到北京 ...
- 软件设计模式——监听模式
摘要 本博文主要是介绍监听模式的原理和应用场景. 案例介绍 庄小焱毕业后留在了的城市,开始了沪漂的生活.但刚刚毕业的他身无绝技.包无分文,为了生活只能住在高桥镇的小村庄,每天坐着程序员专线(10号线) ...
- 设计模式之观察者模式(监听模式)
目录 前言 UML类图 观察者模式的设计要点及应用场景 观察者模式的应用 其他 前言 观察者模式也称作监听模式,即观察与被观察的关系,比如你在烧开水时看它有没有开,你就是观察者,水就是 ...
- 第01课:生活中的监听模式——一坑爹的热水器
用程序来模拟生活 从剧情中思考监听模式 监听模式 监听模式的模型抽象 代码框架 类图 基于框架的实现 模型说明 设计要点 推模型和拉模型 应用场景 [故事剧情] 刚刚大学毕业的 Tony 只身来到北京 ...
- JMS调用IBM MQ监听模式
最近几天一直纠结于监听模式.在监听模式下遇到了两个问题. 1.消息接收者不关闭竟然收不到消息. 2.在监听模式下,每次只收一条消息,即使设定了监听,也是只收到一条消息 今天就针对这两个问题作出解答. ...
- 1.设计模式中监听模式(观察者模式)(Python实现)
目录 1.什么是监听模式 2.监听模式设计思想 3.监听模式的框架模型 4.分别用框架模型和不用框架模型来解决下面的例子 5.模型说明 6.监听模式根据侧重可以分为推模型和拉模型 7.账号异常登录检测 ...
- java的actionlistener_「actionlistener」Java——事件处理机制监听者基础(一)动作监听ActionListener - seo实验室...
actionlistener 介绍: actionlistener是一个接口,ActionEvent通常在点击一个按钮或双击某个列表项或选中某个菜单时发生. 如何设置监听: 对监听者添加ActionL ...
最新文章
- 深入浅出Android系统启动流程
- [周年感悟]看软件项目中的四种角色
- ARP的超时重新请求
- PL/SQL Developer连接本地Oracle 11g 64位数据库和快捷键设置
- JMeter正则表达式-学习(3)
- C#中的bitmap类和图像像素值获取方法
- I帧、B帧和P帧的特点和编码的基本流程
- 面试官Diss我能力不如工作3年
- 根号x_【深情攻X自卑受】糖与盐by根号三
- python3 float最大值_Python3(3) Python 函数
- Android Wi-Fi subsystem_ramdump简介(以QCOM为Base)
- 基于OMAPL138/C6748 + SPARTAN-6 77GHz汽车防撞雷达信号处理平台设计
- php的网页服务器根目录,php获得网站根目录的几个方法
- 电商网站对服务器配置有什么要求?
- oracle显示连接超时,Oracle 12179:tns:连接超时的问题
- Python办公——三行代码拆分表格
- 手机端的日期选择的插件
- grep -e 和 grep -E 的区别是什么?
- pytorch apex +ddp 分布式训练+数据优化
- scilab 求微分_定积分的scilab程序
热门文章
- mysql 分区指定路径_[数据库]MySQL 指定各分区路径
- 大江论坛服务器维护,Kangle“多节点服务器扩展”功能的详细介绍
- 虚拟化文件服务器,VMware虚拟化效率之文件服务器性能测试(上)
- vex机器人比赛 一队人数_VEX世锦赛中国区总决赛在渝闭幕 重庆晚报记者带你了解VEX机器人的那些事...
- java socket中属性详解_前端开发:关于Vue组件中的data属性值是函数而不是对象的详解...
- 【Interfacenavigation】XML中的字体(27)
- MySQL 表中添加 时间戳 字段
- Advanced Auto Layout:Programmatically Creating Constraints
- linux 下 php 安装 Gearman
- 第19课:Spark高级排序彻底解密