当前位置: 技术问答>java相关
怎么写一个事件Event呢?
来源: 互联网 发布时间:2015-06-26
本文导语: 我想在一个类Class1中写一个事件event1, 当Class1中的某个值变化时,就触发event1, 然后写另外一个类Class2,监听Class1中的event1事件, 一旦监听到event1,就做我的工作? 问题是怎么在Class1中写这个事件event1呢? | ...
我想在一个类Class1中写一个事件event1,
当Class1中的某个值变化时,就触发event1,
然后写另外一个类Class2,监听Class1中的event1事件,
一旦监听到event1,就做我的工作?
问题是怎么在Class1中写这个事件event1呢?
当Class1中的某个值变化时,就触发event1,
然后写另外一个类Class2,监听Class1中的event1事件,
一旦监听到event1,就做我的工作?
问题是怎么在Class1中写这个事件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
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