请教,awt/swing高手请进!
Yoinn 2003-12-02 05:30:13 import java.awt.*;
import java.awt.event.*;
public class MainClass extends Frame{
public MainClass() {
super();
this.addWindowListener(new MyWindowListener());
}
public void showFrame(){
this.add( new MyComponent() );
this.setTitle("Main Frame");
this.setSize(300,200);
this.setVisible(true);
}
private class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
public static void main(String[] args) {
MainClass mainClass = new MainClass();
mainClass.showFrame();
}
}
class MyComponent extends Component implements Runnable {
Thread t = null;
public MyComponent() {
super();
t = new Thread(this);
t.start();
System.out.println("MyComponent()");
}
public void run() {
while(true){
System.out.println("run()");
try{
Thread.sleep(500);
}catch(InterruptedException e){
}
repaint();
}
}
public void paint(Graphics g){
System.out.println("paint(Graphics g)");
drawString(g);
}
public void update(Graphics g){
System.out.println("update(Graphics g)");
drawString(g);
}
public void drawString(Graphics g){
g.drawString("Hello",20,20);
}
}
//=============================================================
//为什么显示结果是:
/*
MyComponent()
run()
paint(Graphics g)
paint(Graphics g)
run()
paint(Graphics g)
run()
paint(Graphics g)
run()
paint(Graphics g)
run()
....
*/
// update方法没有执行,这是怎么回事啊?