// 这是一段定义一个TimerListener接口的代码,我完全看迷糊了,哪位高手给解释下啊??
interface TimerListener extends EventListener
{ public void timeElapsed(TimerEvent evt); //这句怎么会这样写??
}
class Timer extends Component implements Runnable
{ public Timer(int i) // 参数为时间间隔;
{ interval = i;
Thread t = new Thread(this); //线程声明 Tread(Runnable target);
t.start();
evtq = Toolkit.getDefaultToolkit().getSystemEventQueue(); // evtq 事件队列 getDefaultToolkit() 获得
// 默认工具包; getSystemEventQueue() 获得程序的事件队列实例;
enableEvents(0);
}
public void addTimerListener(TimerListener l)
{ listener = l; // 监听的对象
}
public void run()
{ while (true)
{ try { Thread.sleep(interval); } // 在指定毫秒内让线程休眠
catch(InterruptedException e) {}
TimerEvent te = new TimerEvent(this);
evtq.postEvent(te); // 将事件 te 发送到evtq中;
}
}
public void processEvent(AWTEvent evt) // 处理事件方法
{ if (evt instanceof TimerEvent) // 检查一个对象是否为他的一个实例 instanceof
{ if (listener != null) //如果有一个以上监听对象
listener.timeElapsed((TimerEvent)evt); //执行timeElapsed(TimerEvent evt)中的代码
}
else super.processEvent(evt);
}
private int interval;
private TimerListener listener;
private static EventQueue evtq;
}
class TimerEvent extends AWTEvent
{ public TimerEvent(Timer t) { super(t, TIMER_EVENT); }
public static final int TIMER_EVENT
= AWTEvent.RESERVED_ID_MAX + 5555; // 保留的 AWT 事件 ID 的最大值。定义自己的事件 ID 的程序应该使用大于此值的 ID。
// RESERVED_ID_MAX + 5555 什么意思啊??
}