黑马程序员技术交流社区
标题:
线程的问题
[打印本页]
作者:
文密
时间:
2012-4-8 21:59
标题:
线程的问题
一个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
请问是什么情况
能帮忙解决吗?
谢谢~
作者:
宋蕈
时间:
2012-4-9 08:46
问题1,你的paint方法的覆写应该是在直接继承了Frame类的tball中,而不是在thr里面。
问题2,你要想实现动态的滚动,即小球的在窗口中到达底部的时候,你要有判断,然后改变小球颜色。
作者:
pray
时间:
2014-4-26 06:38
有空一起交流一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2