一个Frame上从左上角换一个小圆横向以速度10,纵向以速度5想右下角运动,运动到右下角时以原路返回,并且颜色从左上角的纯蓝色变成红色,再由红色变成纯蓝色,如此反复不断运动
下边时我写的:
import java.awt.*;
import java.awt.event.*;
public class tball extends Frame
{
thr th1;
tball()
{
setVisible(true);
setSize(170*5,85*5);
th1=new thr();
th1.start();
addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){setVisible(false);System.exit(0);}});
}
class thr extends Thread
{
int x=0,y=0,r=0,g=0,b=255;
public void run()
{
while(true)
{
x+=10;y+=5;
r++;b--;repaint();
if(x>170*5||y>85*5)
{
x=0;y=0;
r=0;b=255;
}
try{sleep(200);}catch(InterruptedException e){}
}
}
public void paint(Graphics g)
{
g.setColor(new Color(r,this.g,b));
g.fillOval(x,y,5,5);
}
}
public static void main(String args[])
{
tball ntb=new tball();
}
}
但是运行时显示一片白色的Frame
请问是什么情况
能帮忙解决吗?
谢谢~ |