appletThread = new Thread(this);
appletThread.start();
}
// 线程的 run()方法
public void run() {
while (true) {
// 产生一个代表当前时间的 calendar 子类的实例
Calendar time = Calendar.getInstance();
hours = time.get(Calendar.HOUR);
mins = time.get(Calendar.MINUTE);
secs = time.get(Calendar.SECOND);
System.out.println("秒:" + secs);
repaint();
}
}
public void paint(Graphics g) {
super.paint(g);
g.drawString(String.valueOf(hours) + ":" + String.valueOf(mins) +":"
+ String.valueOf(secs), 50, 50);
}
}
思考:
(1)编辑好程序并保存,然后编译运行,这次 Applet 程序能动态实时显示时间吗?同时,再
试
试 Applet 右上角的关闭按钮能否起作用?请解释前后两个程序的差别?
(2)在 AppletThreaded.java 程序中有两个 start()方法,一个是 Applet 中的 start(),另一个是
appletThread.start(),请问这两个 start()方法有何区别?如果将语句 appletThread.start()删除
掉,
程序运行结果会有怎样的变化?(用语言描述)
分析结果: ______________________________________________
程序实际运行结果: ______________________________________________
(3)到现在为止,Applet 程序终于可以动态实时地显示时间了,然而用户可能会发觉此时的
时间刷新频率稍显太快,那么能否让 AppIet 中的这个时间刷新得稍慢一些呢?(提示:在
Applet 的 run()方法中加入 Thread.sleep()语句)
try{
Thread.sleep(500);
}
catch(InterruptedException exception){
exception.printStackTrace();
}
(4)修改程序并运行,此时刷新频率是不是放慢了,这时试着最小化 Applet 程序,然后再还
原它,反复进行几次,仔细观察 Console 面板,此时是否发现 Console 面板中的输出频率越
来越快,请分析造成这一现象的原因。