`
cookieandsession
  • 浏览: 19526 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自定义对象如何监听

 
阅读更多
我们平时总是对sun公司设计好的对象进行监听,有时候我们需要对自己设计的对象进行监听
代码如下:

package com.protelnet.demo;

//观察者设计模式(observer设计模式)
//事件源
class Person {	//设计一个person对象,有两个动作(eat,run方法),这两个动作需要被别人监听
	private PersonListener listenrer;

	public void registerListener(PersonListener listenrer) {
		this.listenrer = listenrer;
	}

	public void eat() {
		if (listenrer != null) {
			Event event = new Event(this);
			this.listenrer.doeat(event);
		}
		System.out.println("eat");
	}

	public void run() {
		if (listenrer != null) {
			Event event = new Event(this);
			this.listenrer.dorun(event);
		}
		System.out.println("run");
	}
}

//事件监听器(封装事件源)
interface PersonListener {
	public void doeat(Event event);

	public void dorun(Event event);
}

//事件对象
class Event {
	private Person person;

	public Event() {

	}

	public Event(Person person) {
		this.person = person;
	}

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}
}


以下是调用person象方法,测试监听器是否生效
package com.protelnet.demo;

public class Demo3 {
	public static void main(String[] args) {
		Person person = new Person();
		person.registerListener(new MyListener1()); //注册监听器,监听person对象的eat,run动作
		person.eat();
		person.run();
	}
}

class MyListener1 implements PersonListener {

	public void doeat(Event event) {
		System.out.println(event.getPerson() + "你天天吃,你就知道吃,你猪啊你!");
	}

	public void dorun(Event event) {
		System.out.println(event.getPerson() + "你吃完就跑,有病");
	}
}
  • 大小: 28.1 KB
分享到:
评论

相关推荐

    自定义事件的监听器

    自定义时间监听器,1、设计三个要素 事件源:被监听的对象 事件对象: 事件监听器: 2. 对某个源注册一个监听器,此源便成为一个事件源,当事件源上发生某一个动作时,监听器的某个方法将会被调用执行,在执行...

    Android在自定义类中实现自定义监听器方式

    我们通过监听器可以监听对象的各种变化事件,并进行一些需要的处理,相当有用,而且使用起来也很简单。其实,监听器就相当于C++中的回调函数,达到条件就回调执行。 很多时候,我们在自定义控件类中也需要实现一些...

    监听器:监听三个对象的创建和销毁方法

    本次工程的目标是学习监听器,掌握监听三个对象的创建和销毁方法。 三个对象:rquest,session,...1.自定义实现三个监听器的类 2.使用注解的方法注册监听器 3.部署工程并运行,在控制台会输出相应的信息

    layui 监听select选择 获取当前select的ID名称方法

    监听select选择 form.on('select(filter)', function(data){ console.log(data.elem); //得到select原始DOM对象 console.log(data.value); //得到被选中的值 console.log(data.othis); //得到美化后的DOM对象 })...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT...

    【Springboot深入解析】监听器

    文章目录监听器一、监听器模式介绍二、系统监听器介绍三:监听事件触发机制四:自定义监听器 监听器 一、监听器模式介绍 监听器模式可以用下图来体现: 当运行到关键节点的时候,系统会通过广播器发布相应的事件,...

    使用XAML创建自定义图形

    不知道你在WPF之前是否绘制自己的形状,如果没有,这原本是件很困难的事情。...中绘制形状,不想需要重写OnPaint方法或添加Paint监听器。你可以简单的创建一个 图形就像放置任何对象到你想要的位置。

    ProductivityToolkit-Unity事件监听器系统插件

    直观且快速地设置自定义事件,用于减少对象依赖的常见方法!几乎没有额外的代码来结构化游戏逻辑,可以通过拖放在检查器中处理事件订阅,可以在编辑器资产目录中创建新的事件通道。 可通过Assets/Import Package/...

    android全局监控click事件的四种方式(小结)

    本文主要给大家分享如何...抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下: public abstract class CustClickListener implements View.OnClickListener{ @Override public void onClick(Vie

    JAVA实验报告二Java面向对象程序设计.docx

    实验二Java面向对象程序设计 (1)定义表示课程的类Course,课程的属性包括课程名、编号、先修课号;方法包括设置课程名、设置编号、设置先修课号,以及打印课程名、课程号、先修课号。...(3)编制程序,完成自定义异常。

    JSF Java Server Faces (JSF)框架

     应用程序配置资源文件(定义页面导航规则、配置bean和其它的自定义对象,如自定义组件)  部署描述文件( web.xml )  一组由应用程序开发者创建的自定义对象(有可能)  一些可能包含自定义组件、约束、...

    Android 指定手机号的手机震动模式自定义实例.rar

    Android 指定手机号的手机震动模式自定义实例,请看以下的代码片段:  RadioButton rbMeeting;//会议模式  RadioButton rbNormal;//正常模式  Button bAdd;//添加按钮  EditText et;//输入框  TextView tv;//...

    Android自定义实现可滑动按钮

    3.需要加载按钮的背景和滑块资源 并且转化为bitmap对象 4.获取背景图片的宽和高作为自定义控件的宽和高 5.获取滑块的宽度,用来调整按钮的开和关 6.在onDraw()方法中绘制出背景图片和滑块,并展示在页面中 7.创建一个...

    详解在Vue中通过自定义指令获取dom元素

    vue.js 是数据绑定的框架,大部分情况下我们都不需要直接操作 DOM Element,但在某些时候,我们还是有获取DOM Element的... 自定义指令功能在DOM Element的生命周期内提供了不同的钩子函数,并允许我们监听指令绑定的

    web开发常用对象和技术总结

    11个word文档,10个pdf文件,详细讲解web开发中要用到各种技术,包括jsp隐式对象,表达式语言,自定义标签,标准标签库,javabean和标准动作,javamail ,过滤器,监听器servlet ,request ,session ,application.......

    javascript观察者模式Watch.JS.zip

    watch.js目前主要可以做如下这些事情: 1,监听对象上一个或多个属性的改变,当改变后触发自定义事件。 2,批量观察一个对象上所有的属性,当有任何一个改变时,触发自定义事件。 3,可以取消订阅观察 4,你可以...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT...

Global site tag (gtag.js) - Google Analytics