`
cookieandsession
  • 浏览: 20321 次
  • 性别: 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
分享到:
评论

相关推荐

    java自定义事件监听

    Java自定义事件监听允许开发者创建自己的事件类型并相应地处理它们,以满足特定应用的需求。下面我们将深入探讨这一主题。 首先,我们需要理解Java AWT(Abstract Window Toolkit)和Swing库中的基础事件监听机制。...

    自定义事件的监听器

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

    listview 自定义+监听用法

    这篇博客“listview 自定义+监听用法”将深入探讨如何在Android应用中实现ListView的自定义和监听功能。 首先,自定义ListView主要包括两大部分:自定义适配器(Adapter)和自定义视图(View)。适配器是连接数据源...

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

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

    C#自定义事件监听实现方法

    事件监听允许一个对象(订阅者)关注另一个对象(发布者)的状态变化,并在特定事件发生时执行相应操作。本篇将详细讲解如何在C#中实现自定义事件监听。 首先,我们要了解C#事件的基本结构。事件是基于委托的,委托...

    安卓自定义状态栏,监听WiFi信号,电量,和实时显示时间

    要实现自定义状态栏,你需要使用`StatusBarUtil`或Android的`Window`对象。在Android 5.0(Lollipop)及以上版本,你可以通过修改`Window`的`StatusBarColor`来改变背景色。以下是一个简单的示例: ```java if ...

    为jQuery添加自定义事件机制

    `$.fn.extend`允许我们向jQuery对象添加新的方法,这些方法可以用来触发或绑定自定义事件。下面是一个简单的例子: ```javascript $.fn.extend({ customEvent: function() { var self = this; return this.on('...

    Android实现信号强度监听的方法

    接下来,我们需要创建一个自定义的`PhoneStateListener`子类,因为`TelephonyManager`提供了`listen()`方法来监听电话状态,而`PhoneStateListener`是监听器接口。创建的子类需要重写`onSignalStrengthsChanged...

    自定义AutoCompleteTextView下拉列表控件

    在提供的`TestAutoComplete`文件中,可能包含了实现上述功能的示例代码,包括自定义适配器的实现、逐字提示的逻辑以及如何将自定义对象与`AutoCompleteTextView`连接起来的示例。通过分析和学习这个例子,开发者可以...

    利用servlet监听器,系统启动时创建自定义容器简单例子

    在`contextInitialized`方法中,你可以执行任何需要在应用启动时进行的初始化操作,例如创建数据库连接池、初始化缓存或者创建自定义对象容器。这正是这个例子的核心——创建一个自定义容器。你可以根据需求设计这个...

    自定义矢量几何对象的选择操作

    在GIS(地理信息系统)开发中,自定义矢量几何对象的选择操作是十分关键的一个功能,特别是在移动设备上,如Android平台。"自定义矢量几何对象的选择操作"这个主题涉及了如何在SuperMap iMobile Android环境中实现...

    SuperMap Objects .NET 自定义图层对象压盖顺序

    本文将深入探讨如何利用SuperMap Objects .NET 实现自定义图层对象的压盖顺序,根据图层数据集中的特定字段值进行升序或降序排列。 首先,理解图层(Layer)是GIS中的基本概念,它包含了同一类型的数据,如点、线、...

    AnimDislog(自定义弹出框-监听系统返回键).rar

    标题中的"AnimDislog(自定义弹出框-监听系统返回键).rar"就是一个这样的例子,它涉及到如何创建一个具有动画效果的对话框,并且能够监听并处理系统的返回键事件。这一话题涵盖了许多Android UI和事件处理的关键...

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

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

    Recyclerview不带自定义分割线的监听

    4. **没有自定义分割线的监听**:在某些情况下,如果不需要显示分割线,我们可能需要直接监听 RecyclerView 的子项。例如,我们可以在 ViewHolder 的构造函数或 `onCreateViewHolder()` 方法中设置点击监听。这样,...

    WinFomr连线控件,自定义连线控件,自定义连线对象Demo演示程序

    本示例程序"WinFomr连线控件,自定义连线控件,自定义连线对象Demo演示程序"就是针对这样的场景设计的,它主要展示了如何在C#环境下开发和使用自定义的连线控件。以下将详细解析这个项目的重点内容。 1. **自定义...

    QT自定义窗口 自由拖动 自定义标题

    在这个函数中,我们可以使用QPainter对象来绘制任意图形。 - 使用`setWindowFlags()`函数可以修改窗口的默认属性,如禁用系统标题栏,这样我们就有了更大的自由度来设计自己的标题。 2. **自定义标题**: - 创建...

    Android自定义ScrollView使用自定义监听

    为了能够在用户滚动ScrollView时执行特定的操作,如显示滑动坐标,开发者需要自定义ScrollView并为其添加自定义监听器。以下是详细的知识点: 1. ScrollView的自定义实现: 在Android中,若要实现自定义的...

    百度地图自定义标注

    本话题将深入探讨“百度地图自定义标注”这一技术,以及如何实现手动定位功能。 首先,我们来理解“自定义标注”的概念。在百度地图API中,自定义标注是指用户可以根据自己的需求,在地图上添加个性化图标、文字或...

Global site tag (gtag.js) - Google Analytics