import java.util.EventObject;
//先继通一个基本事件类
public class MyEvent extends EventObject
{
<wbr>private Object <wbr>obj;<br><wbr>private String <wbr>sName;</wbr></wbr></wbr></wbr>
<wbr>public MyEvent(Object source,String sName)<br><wbr>{<br><wbr><wbr>super(source);<br><wbr><wbr>this.obj=source;<br><wbr><wbr>this.sName=sName;<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>public Object getObj()<br><wbr>{<br><wbr><wbr>return obj;<br><wbr>}</wbr></wbr></wbr></wbr></wbr>
<wbr>public String getsName()<br><wbr>{<br><wbr><wbr>return sName;<br><wbr>}<br> }</wbr></wbr></wbr></wbr></wbr>
import java.util.EventListener;
//同样继承事件监听器,接口
public interface MyEventListener extends EventListener
{
<wbr>public void <span style="color:#ed1c24">handleEvent</span>(<span style="color:#ed1c24">MyEvent me</span>);</wbr>
}
//有了事件和监听器,就可以组装一个类了。至少得一个注册监听事件,一个事件和监听相关连的方法
import java.util.Iterator;
import java.util.Vector;
import demo.DemoEvent;
public class MyEventSource
{
<wbr>private Vector list=new Vector();<br><wbr>private String <wbr><wbr><wbr>sName <wbr><wbr>= "";</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><br><wbr>public MyEventSource()<br><wbr>{<br><wbr><wbr>super();<br><wbr>}<br><wbr>public void addMyEventListener(MyEventListener me)<br><wbr>{<br><wbr><wbr>list.add(me);<br><wbr>}<br><wbr>public void deleteMyEventListener(MyEventListener me)<br><wbr>{<br><wbr><wbr>list.remove(me);<br><wbr>}<br><wbr>public void <span style="color:#ed1c24">notifyMyEvent(MyEvent me)<br></span><wbr>{<br><wbr><wbr>Iterator it=list.iterator();<br><wbr><wbr>while(it.hasNext())<br><wbr><wbr>{<br><wbr><wbr><wbr><span style="color:#ed1c24">((MyEventListener) it.next()).handleEvent(me);</span><br><wbr><wbr>}<br><wbr>}<br><wbr>public void setName(String str)<br><wbr>{<br><wbr><wbr>boolean bool = false;<br><wbr><wbr>if (str == null && sName != null)<br><wbr><wbr><wbr>bool = true;<br><wbr><wbr>else if (str != null && sName == null)<br><wbr><wbr><wbr>bool = true;<br><wbr><wbr>else if (!sName.equals(str))<br><wbr><wbr><wbr>bool = true;<br><wbr><wbr>this.sName = str;<br><wbr><wbr>// 如果改变则执行事件<br><wbr><wbr>if (bool)<br><wbr><wbr><wbr><span style="color:#ed1c24">notifyMyEvent(new MyEvent(this, sName));<br></span><wbr>}<br><wbr>public String getsName()<br><wbr>{<br><wbr><wbr>return sName;<br><wbr>}<br><wbr><br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>//通过实现监听器,并实例化组装类,添加注册,并触发组装类中的触发点</wbr>
public class Test implements MyEventListener
{
<wbr>public Test()<br><wbr>{<br><span style="color:#ed1c24"><wbr><wbr>MyEventSource mes = new MyEventSource();<br><wbr><wbr>mes.addMyEventListener(this);<br><wbr><wbr>mes.setName("niu");<br></wbr></wbr></wbr></wbr></wbr></wbr></span><wbr>}</wbr></wbr></wbr>
<wbr>public static void main(String args[])<br><wbr>{<br><wbr><wbr>new Test();<br><wbr>}</wbr></wbr></wbr></wbr></wbr>
<wbr>public void <span style="color:#ed1c24">handleEvent(MyEvent me)</span><br><wbr>{<br><wbr><wbr>System.out.println(me.getSource());<br><wbr><wbr>System.out.println(me.getsName());<br><wbr>}<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr>