一直对自定义监听器有疑问,所以转一下,有空理解下

自定义监听器 Java (2010-04-10 10:51:11)

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 &amp;&amp; sName != null)<br><wbr><wbr><wbr>bool = true;<br><wbr><wbr>else if (str != null &amp;&amp; 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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值