import java.awt.*;
import java.util.*;public class Clock extendsM ultiThreadApplet{
public void init(){
MultiThreadApplet m=new MultiThreadApplet();
Thread t=new Thread(m);
t.start();
}
public void run() {
while(true){
repaint();
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void paint(Graphics g){
System.out.println("paint...");
Calendar now=new GregorianCalendar();
String s=new String();
int hour=now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);
int seconds=now.get(Calendar.SECOND);
g.setColor(Color.red);
s=hour+":"+minute+":"+seconds;
g.drawString(s,80,80);
}
}import java.applet.Applet;
class MultiThreadApplet extends Applet implements Runnable{
public void run() {
Clock c=new Clock();
c.run();
}
}paint方法中的测试语句只执行了一次,说明repaint没用。
还有个问题,就是Clock类继承了MultiThreadApplet类,可是为什么在Clock类中直接重写run方法,线程启动后仍然调用MultiThreadApplet类的run方法,而不是Clock类的run方法?(所以我用了对象去调用)
编写实现Runnable接口的Applet多线程小程序类MultiThreadApplet,编写继承该类的Applet小程序类Clock,在Clock中重新构造父类的run()方法,实现数字时钟的功能,要求不断刷新显示时、分、秒。