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具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
java监听器练习,java初学者!
Java监听键盘鼠标全局事件[定义].pdf
一个java监听器的实现demo,即观察者设计模式实现
java一个监听器的例子
主要介绍了Java设计模式之监听器模式,结合实例形式较为详细的分析了java设计模式中监听器模式的概念、原理及相关实现与使用技巧,需要的朋友可以参考下
自动监控USB设备,插上后自动复制指定类型文件到指定目录!后台运行,隐藏性能较好。
基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于...
学会使用监听域对象的属性变更 2、 实验环境 Eclipse 3、 实验内容 (1)创建测试页面,在chapter08项目的WebContext根目录中,编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用。 (2)在...
简单的java监听器小练习,适合初学者!
java毕业设计——java本地监听与远程端口扫描系统的设计与实现(源代码+论文).zip java毕业设计——java本地监听与远程端口扫描系统的设计与实现(源代码+论文).zip java毕业设计——java本地监听与远程端口扫描系统的...
监听器之定时器,写一个定时器的监听器,这个监听器每十秒向控制台输出一次时间信息 博客地址:https://blog.csdn.net/qq_36631076/article/details/80401609
java开发的监听键盘事件,获取并显示键盘事件
2.1Java的时间监听机制涉及到三个组件:事件源、事件监听器、事件对象 2.2当事件源上发生操作时,它会调用事件监听器的一个方法,并且调用这个方法时,会传递事件对象过来 2.3事件监听器是由开
Java监听器添加 四种监听器 内部 外部 内部匿名 自身
java技术对数据库语句的监听你猜对了万能充
用java8实现一个文件目录的监听,目录中文件创建、修改、删除等操作
java入门:java写的一个界面,画了个棋盘,实现panel,button的事件监听