我们平时总是对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 AWT(Abstract Window Toolkit)和Swing库中的基础事件监听机制。...
自定义时间监听器,1、设计三个要素 事件源:被监听的对象 事件对象: 事件监听器: 2. 对某个源注册一个监听器,此源便成为一个事件源,当事件源上发生某一个动作时,监听器的某个方法将会被调用执行,在执行...
这篇博客“listview 自定义+监听用法”将深入探讨如何在Android应用中实现ListView的自定义和监听功能。 首先,自定义ListView主要包括两大部分:自定义适配器(Adapter)和自定义视图(View)。适配器是连接数据源...
我们通过监听器可以监听对象的各种变化事件,并进行一些需要的处理,相当有用,而且使用起来也很简单。其实,监听器就相当于C++中的回调函数,达到条件就回调执行。 很多时候,我们在自定义控件类中也需要实现一些...
事件监听允许一个对象(订阅者)关注另一个对象(发布者)的状态变化,并在特定事件发生时执行相应操作。本篇将详细讲解如何在C#中实现自定义事件监听。 首先,我们要了解C#事件的基本结构。事件是基于委托的,委托...
要实现自定义状态栏,你需要使用`StatusBarUtil`或Android的`Window`对象。在Android 5.0(Lollipop)及以上版本,你可以通过修改`Window`的`StatusBarColor`来改变背景色。以下是一个简单的示例: ```java if ...
`$.fn.extend`允许我们向jQuery对象添加新的方法,这些方法可以用来触发或绑定自定义事件。下面是一个简单的例子: ```javascript $.fn.extend({ customEvent: function() { var self = this; return this.on('...
接下来,我们需要创建一个自定义的`PhoneStateListener`子类,因为`TelephonyManager`提供了`listen()`方法来监听电话状态,而`PhoneStateListener`是监听器接口。创建的子类需要重写`onSignalStrengthsChanged...
在提供的`TestAutoComplete`文件中,可能包含了实现上述功能的示例代码,包括自定义适配器的实现、逐字提示的逻辑以及如何将自定义对象与`AutoCompleteTextView`连接起来的示例。通过分析和学习这个例子,开发者可以...
在`contextInitialized`方法中,你可以执行任何需要在应用启动时进行的初始化操作,例如创建数据库连接池、初始化缓存或者创建自定义对象容器。这正是这个例子的核心——创建一个自定义容器。你可以根据需求设计这个...
在GIS(地理信息系统)开发中,自定义矢量几何对象的选择操作是十分关键的一个功能,特别是在移动设备上,如Android平台。"自定义矢量几何对象的选择操作"这个主题涉及了如何在SuperMap iMobile Android环境中实现...
本文将深入探讨如何利用SuperMap Objects .NET 实现自定义图层对象的压盖顺序,根据图层数据集中的特定字段值进行升序或降序排列。 首先,理解图层(Layer)是GIS中的基本概念,它包含了同一类型的数据,如点、线、...
标题中的"AnimDislog(自定义弹出框-监听系统返回键).rar"就是一个这样的例子,它涉及到如何创建一个具有动画效果的对话框,并且能够监听并处理系统的返回键事件。这一话题涵盖了许多Android UI和事件处理的关键...
本次工程的目标是学习监听器,掌握监听三个对象的创建和销毁方法。 三个对象:rquest,session,...1.自定义实现三个监听器的类 2.使用注解的方法注册监听器 3.部署工程并运行,在控制台会输出相应的信息
4. **没有自定义分割线的监听**:在某些情况下,如果不需要显示分割线,我们可能需要直接监听 RecyclerView 的子项。例如,我们可以在 ViewHolder 的构造函数或 `onCreateViewHolder()` 方法中设置点击监听。这样,...
本示例程序"WinFomr连线控件,自定义连线控件,自定义连线对象Demo演示程序"就是针对这样的场景设计的,它主要展示了如何在C#环境下开发和使用自定义的连线控件。以下将详细解析这个项目的重点内容。 1. **自定义...
在这个函数中,我们可以使用QPainter对象来绘制任意图形。 - 使用`setWindowFlags()`函数可以修改窗口的默认属性,如禁用系统标题栏,这样我们就有了更大的自由度来设计自己的标题。 2. **自定义标题**: - 创建...
为了能够在用户滚动ScrollView时执行特定的操作,如显示滑动坐标,开发者需要自定义ScrollView并为其添加自定义监听器。以下是详细的知识点: 1. ScrollView的自定义实现: 在Android中,若要实现自定义的...
本话题将深入探讨“百度地图自定义标注”这一技术,以及如何实现手动定位功能。 首先,我们来理解“自定义标注”的概念。在百度地图API中,自定义标注是指用户可以根据自己的需求,在地图上添加个性化图标、文字或...