| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 666 人关注过本帖
标题:关于事件和线程的问题
只看楼主 加入收藏
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
 问题点数:0 回复次数:6 
关于事件和线程的问题

// 这是一段定义一个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 什么意思啊??
}

搜索更多相关主题的帖子: 线程 
2006-01-05 10:38
Jhyvin
Rank: 2
等 级:新手上路
威 望:4
帖 子:81
专家分:0
注 册:2005-12-29
收藏
得分:0 
public void timeElapsed(TimerEvent evt); //这句怎么会这样写??
接口里定义一个抽象方法啊 接口里面的方法都是抽象的;

一万年太久,只争朝夕! 从此不再乱翻书!!!
2006-01-05 13:50
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 
谢谢老大哦,还有最后一行那个问题帮我看看啊~

懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2006-01-05 13:56
Jhyvin
Rank: 2
等 级:新手上路
威 望:4
帖 子:81
专家分:0
注 册:2005-12-29
收藏
得分:0 
AWTEvent.RESERVED_ID_MAX + 5555;
// 保留的 AWT 事件 ID 的最大值。定义自己的事件 ID 的程序应该使用大于此值的 ID。


RESERVED_ID_MAX 是AWT事件ID的最大值. 自己定义的事件ID一定要大于RESERVED_ID_MAX
+5555 是随便的 你可以+1 +2都都行

一万年太久,只争朝夕! 从此不再乱翻书!!!
2006-01-05 16:02
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 
什么叫事件ID啊 ,设这样一个值有什么意义啊??

懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2006-01-05 17:02
Jhyvin
Rank: 2
等 级:新手上路
威 望:4
帖 子:81
专家分:0
注 册:2005-12-29
收藏
得分:0 
事件ID就是一个号码 这个号码是这个事件的KEY 区别与其他事件 因为第一段是你自己定义的一个事件监听器嘛 产生的事件是另外的 所以要本来有的ID上再加一个整数 这样就不会和JDK自带的发生冲突

我是这样想的 不知道对不对

一万年太久,只争朝夕! 从此不再乱翻书!!!
2006-01-06 14:38
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 
哦???真的吗,谢谢你哦

懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2006-01-06 15:16
快速回复:关于事件和线程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022313 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved