package dome1;
import java.util.Vector;
/*
在一个类A中写一个事件evt,
当A中的某个值变化时,就触发evt,
然后写另外一个类B,监听A中的event1事件, */
public class A {
private Vector aListeners = new Vector();
private int value;
public int getValue() {
return value;
}
public void setValue(int newValue) {
if (value != newValue) {
value = newValue;
AEvent evt = new AEvent(this, value);//可以写到外面取初始化
// 如果值改变的话,就触发事件
fireAEvent(evt);
}
}
public synchronized void addAListener(AListener a) {
aListeners.addElement(a);
}
public synchronized void removeAListener(AListener a) {
aListeners.removeElement(a);
}
public void fireAEvent(AEvent evt) {
Vector currentListeners = null;
synchronized (this) {
currentListeners = (Vector) aListeners.clone();//返回副本
}
for ( int i = 0 ; i < currentListeners.size() ; i++) {
AListener listener = (AListener) currentListeners.elementAt(i);
listener.doSth(evt);
}
}
}
----------------------------
package dome1;
import java.util.EventObject;
//定义事件
public class AEvent extends EventObject {
private int value;
public AEvent(Object source, int newValue) {
super(source);
value = newValue;
}
}
------------------
package dome1;
//定义接口,当事件触发时调用
public interface AListener extends java.util.EventListener {
public void doSth(AEvent e);
}
-----------------------
package dome1;
class B implements AListener {
public B() {
A a = new A();
a.addAListener(this);
try {
Thread.sleep(3000);
// 改变属性,触发事件
a.setValue(1);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
new B();
}
public void doSth(AEvent e) {
System.out.println("改变事件发生");
}
}
分享到:
相关推荐
Java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public ...
Java监听器的实现和原理详解 Java监听器是一种非常重要的设计模式,在Java中广泛应用于事件驱动编程。监听器模式的主要思想是将事件源和事件处理器分离,使得事件源可以独立于事件处理器,提高了系统的灵活性和可...
Java监听键盘鼠标全局事件 Java监听键盘鼠标全局事件是指使用Java语言来监听和处理键盘和鼠标事件的技术。这项技术广泛应用于游戏开发、自动化测试、屏幕阅读器等领域。下面是Java监听键盘鼠标全局事件的详细知识点...
【JAVA USB监听器】是一种基于Java编程语言实现的软件工具,其主要功能是对USB设备进行实时监控,当USB设备插入时,能够自动检测并复制指定类型的文件到预先设定的目录中。这种工具对于需要频繁从USB设备中获取特定...
总的来说,Java提供了多种方式来实现时间监听,可以根据应用场景选择合适的方法。无论是简单的定时任务,还是复杂的事件驱动,都能通过上述手段灵活处理。在实际开发中,合理运用这些工具能帮助我们构建出更健壮、...
在Java编程环境中,有时我们需要实现一个功能,即监听Windows系统的热键组合,以便在用户按下特定的键盘快捷键时执行相应的操作。这个功能在开发桌面应用程序时非常有用,特别是使用Swing作为UI框架的时候。标题提到...
### Java监听器基础知识与实践 #### 一、Java监听器概念 在Java中,监听器是一种用于处理特定事件的对象。当某个事件发生时(如按钮点击、键盘输入等),监听器将被调用来执行相应的操作。Java中的监听器机制是基于...
在Java编程中,监听器...在提供的压缩包文件“05_监听器”中,可能包含更多关于Java监听器的实例代码和讲解,可以帮助深入理解这一主题。建议查看这些文件,动手实践并调试代码,以便更好地掌握Java监听器的使用。
在本文中,我们将深入探讨如何使用Java编程语言来监听斗鱼直播间的弹幕信息。斗鱼是中国一个流行的在线游戏直播平台,它允许观众通过发送弹幕与其他观众和主播互动。要实现这一功能,我们需要理解Java网络编程、JSON...
监听器模式是Java设计模式中的一种行为型模式,主要用于监听某些事件的发生,并在事件发生时自动执行预定义的操作。在实际开发中,监听器模式可以用于多种场景,如UI事件处理、事件广播、异步通知等。 在监听器模式...
本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...
### Java监听数据库的背景与意义 在现代软件开发中,数据库是存储和管理数据的核心组件。为了确保数据的一致性和完整性,开发者需要能够监控并响应数据库中的变化。Java监听数据库的概念主要涉及到数据库触发器、...
基于java的开源库,实现对163邮箱的监听。依赖jakarta.mail-api和angus-mail。 通过代码API去访问邮箱时,因为很多邮箱的支持机制不同。像qq和163就不同。所以实现上会有些不同。这些细节上的不同,直接影响代码是否...
### Java监听器基础知识与实践 #### 一、Java监听器概念 在Java中,监听器是一种用于处理事件的机制。当某个特定类型的事件发生时,监听器会执行相应的操作。这种机制广泛应用于图形用户界面(GUI)编程中,使得...
一个java监听器的实现demo,即观察者设计模式实现
### Java监听器添加:四种监听器(内部、外部、内部匿名、自身) #### 一、引言 在Java中,监听器(Listener)是事件处理机制的重要组成部分,它主要用于响应用户或其他组件产生的事件。根据实现方式的不同,可以...
学会使用监听域对象的属性变更 2、 实验环境 Eclipse 3、 实验内容 (1)创建测试页面,在chapter08项目的WebContext根目录中,编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用。 (2)在...
这篇博客“java监听器”可能详细解释了如何在Java中使用监听器以及它们在实际项目中的应用。 首先,我们来理解什么是Java监听器。在Java Swing或JavaFX等GUI库中,监听器是接口,实现了这些接口的类可以“监听”...
在这个"java监听者模式三个实例"中,我们将深入探讨如何使用监听者模式来实现事件驱动的编程。 1. **监听者模式的基本概念** - **观察者(Observer)**:即监听者,它定义了接口用于接收被观察者的通知。 - **被...