关于坦克大战中的线程运行的问题,我写了段小代码,为什么要用我注掉的绿色的部分,红色的部分为什么不可以呢
JDHSK 2012-08-28 12:06:50 import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
@SuppressWarnings("serial")
public class TankClient extends Frame{
int x = 50,y = 50 ;
@Override
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(x, y, 30, 30);
g.setColor(c);
y+=9;
}
public void launchFrame() {
setLocation(400,300);
setSize(800,600);
addWindowListener(new MyTankWarClosing());
setResizable(false);
setBackground(Color.GREEN);
setTitle("TankWar");
setVisible(true);
// new Thread(new PaintThread()).start();
}
public static void main(String[] args) {
TankClient tc = new TankClient();
tc.launchFrame();
TankClient a = new TankClient();
TankClient.PaintThread in = a.new PaintThread();
new Thread(in).start();
}
class MyTankWarClosing extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
private class PaintThread implements Runnable {
@Override
public void run() {
while(true) {
repaint();
System.out.println("测试语句");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}