package tigers;
import java.util.*;
public class Tiger13 {
static interface TestListener extends EventListener {
public void doEvent(TestEvent ev);
}
static class TestEvent extends EventObject {
public TestEvent(Object source) {
super(source);
}
}
static class Test {
private HashSet<TestListener> listeners = new HashSet<TestListener>();
private String name;
public void addListener(TestListener listener) {
synchronized(listeners) {
listeners.add(listener);
}
}
private void doTestListener(Object obj) { //从setName()和getName()中重构出的方法
TestEvent ev = new TestEvent(obj);
synchronized(listeners) {
for (TestListener listener: listeners) {
listener.doEvent(ev);
}
}
}
public void setName(String name) {
this.name = name;
doTestListener(this);
}
public String getName() {
doTestListener(this);
return this.name;
}
public String toString() {
return "Tiger13$Test:(" + name + ")";
}
}
public static void main(String[] args) {
Test t = new Test();
t.addListener( //使用匿名内部类添加事件监听接口
new TestListener() {
public void doEvent(TestEvent ev) {
System.out.println("第一个事件监听:[" + ev.getSource() + "]");
}
}
);
t.addListener( //使用匿名内部类添加事件监听接口
new TestListener() {
public void doEvent(TestEvent ev) {
System.out.println("第二个事件监听类被激活!");
}
}
);
t.setName("bitan");
System.out.println("Tiger13$Test.getName():" + t.getName());
t.setName("helen");
System.out.println("Tiger13$Test.getName():" + t.getName());
}
}
结果:
第一个事件监听:[Tiger13$Test:(bitan)]
第二个事件监听类被激活!
第一个事件监听:[Tiger13$Test:(bitan)]
第二个事件监听类被激活!
Tiger13$Test.getName():bitan
第一个事件监听:[Tiger13$Test:(helen)]
第二个事件监听类被激活!
第一个事件监听:[Tiger13$Test:(helen)]
第二个事件监听类被激活!
Tiger13$Test.getName():helen
分享到:
相关推荐
以下是一个简单的jQuery监听滚轮事件的例子: ```javascript $(document).ready(function() { $('body').on('mousewheel DOMMouseScroll', function(event) { var delta = event.originalEvent.wheelDelta || (-...
在Android开发中,匿名内部类是一种常见的编程技巧,它允许我们快速实现事件监听功能,而无需定义单独的类。本文将深入探讨如何使用匿名内部类作为事件监听类,以及其在Android开发中的应用。 首先,我们需要理解...
这种方式的好处在于,如果需要复用这个监听器或者需要对多个Button使用相同的点击事件处理,你可以直接创建并使用这个类的实例。 2. 使用匿名内部类的方式,直接在设置监听器的地方实现`OnClickListener`接口。这样...
这些例子可以帮助开发者快速理解和应用这个库,例如,可以创建一个简单的日志记录器,记录所有全局的鼠标和键盘活动,或者开发一个屏幕截图工具,响应全局热键来捕捉屏幕。 【README.md】文件应该包含了库的详细...
### Java GUI 事件监听知识点详解 #### 一、概述 在Java编程中,图形用户界面(GUI)的设计是一项重要的技能。对于初学者来说,掌握如何创建一个简单的界面,并且能够处理用户交互事件是非常必要的。本篇文章将...
本示例着重讲解如何实现拖放事件监听,以及结合图片拖动的实战应用。 首先,Android的Drag and Drop API主要涉及以下组件和接口: 1. `DragEvent`:表示拖放操作的事件对象,包含了拖放操作的状态、坐标等信息。 2...
以下是一个简单的例子: ```java ListView listView = findViewById(R.id.list_view); ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataList); listView....
总之,jQuery提供了一种简单的方式来监听和响应DOM元素的事件,包括对DIV的各种操作。通过理解和熟练运用这些方法,我们可以创建更动态、更响应式的Web应用。记住,选择正确的事件和优化事件处理是提升用户体验的...
首先,我们要知道在JavaScript中,直接监听文件下载事件并不像监听点击事件那样简单。浏览器出于安全考虑,并不提供直接监听文件下载完成的API。但是,我们可以通过一些间接的方式来实现这个目标。 1. **利用`a`...
查阅JavaDoc API文档 读者可根据JavaDoc API文档来了解如何实现单击item选项监听事件 如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通...
这个简单的示例演示了如何利用Java Swing中的`JList`来处理用户交互,以及如何通过事件监听器来响应用户的操作。在实际应用中,你可以根据需求进一步定制监听器的行为,例如弹出对话框、更新其他组件的状态或者进行...
事件的发布可以使用ApplicationContext的`publishEvent()`方法,将事件实例传递给它,然后事件广播器会自动调用匹配的监听器方法。 Spring事件监听机制的灵活性体现在多方面: - 同一个事件可以被多个监听器接收,...
在这个例子中,`ButtonClickHandler` 类作为外部类实现了 `ActionListener` 接口,而 `ExternalClassEvent` 类负责创建和展示GUI,并将 `ButtonClickHandler` 实例注册为按钮的监听器。 #### 三、匿名内部类作为...
在这个简单的例子中,它只是在控制台打印一条消息"HitMe!"。在实际项目中,你可能会在这里执行更复杂的逻辑,比如减少角色的生命值或触发其他游戏效果。 总结来说,这个Unity3D教程主要介绍了如何利用JavaScript...
以下是一个简单的例子,展示了如何创建一个使用动作监听器的Java程序: ```java import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ListenerExample...
在Java编程中,图片绘制和鼠标事件监听是两个重要的概念,尤其对于开发用户界面和交互式应用程序至关重要。本文将深入探讨这两个主题,并结合一个名为"Plane"的示例,帮助初学者理解如何在Java中实现这些功能。 ...
描述中提到的“简单的listview侧滑监听,使用了GestureDetector,OnTouchListener,OnGestureListener等”是实现这一功能的关键技术。 GestureDetector是Android提供的手势检测工具类,它可以识别多种基本的手势,...
PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。 关于...
本文将详细介绍Java中添加事件监听的四种方法,并通过代码实例进行说明。 ### 1. 实现监听器接口 第一种方法是让类直接实现特定的监听器接口。例如,`ActionListener` 接口用于处理动作事件,如按钮点击。以下是一...
为了更直观地理解事件和监听器的工作方式,我们可以通过一个简单的按钮点击事件的例子来进行说明: ```java import javax.swing.JButton; import javax.swing.JFrame; import java.awt.event.ActionEvent; import ...