启动线程后,想让画出的圆向下移动,用Frame可以办到。可是改成 extends JFrame后,能正常画新的圆,但以前的圆也不消失,
最后成条直线了。。我想问一下这是怎么回事?网上说JFrame是Frame的扩展,那为何出现的不一样了呢?代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TankClient extends Frame// <--------------------------换成JFrame后出问题
{

int x=100,y=100;
public void paint(Graphics g)
{
Color c=g.getColor();
g.setColor(Color.red);
g.fillOval(x,y,30,30);
g.setColor(c);
y+=5;
}
public void launchFrame()
{
setVisible(true);
setLocation(400,300);
setTitle("TankWar");
this.addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{
System.exit(0);
}
 
});
setSize(800,600);
setResizable(false);
setBackground(Color.green);

//Thread th=new Thread(new PaintThread());
//th.start();
new Thread(new PaintThread()).start();
}
public static void main(String args[])
{
TankClient tc=new TankClient();
tc.launchFrame();
}

private class  PaintThread implements Runnable
{ public void run()
{
while(true)
{
repaint();
try
{
Thread.sleep(100);
}
catch(InterruptedException e)
{
//
}
}
}

}
}