Java事件响应机制

2014-11-24 02:22:34 · 作者: · 浏览: 2

1,先自定义一个事件


public class MyEvent extends java.util.EventObject{
public MyEvent(Object source)
{
super(source);
}
}


2,再自定义一个监听器


public class MyListener implements java.util.EventListener{
//这里是当事件发生后的响应过程
public void EventActivated(MyEvent me)
{
System.out.println("事件已经被触发");
}
}


3,以下这个类为触发事件的事件源


public class MyObject {
private Vector vectorListeners=new Vector();

public synchronized void addMyListener(MyListener ml)
{
vectorListeners.addElement(ml);
}

public synchronized void removeMyListener(MyListener ml)
{
vectorListeners.removeElement(ml);
}

protected void activateMyEvent()
{
Vector tempVector=null;

MyEvent e=new MyEvent(this);

synchronized(this)
{
tempVector=(Vector)vectorListeners.clone();

for(int i=0;i {
MyListener ml=(MyListener)tempVector.elementAt(i);
ml.EventActivated(e);
}
}

}

//定义一个公用方法用于触发事件
public void test()
{
activateMyEvent();
}
}


4,测试类


public class Test {


public static void main(String[] args)
{
MyObject mo=new MyObject();


//注册该事件
mo.addMyListener(new MyListener());

//触发该事件
mo.test();
}
}