Java程序,实现字幕滚动,代码如下,帮我查查错误在哪?程序可以运行汉字就是不动

importjava.applet.Applet;importjava.awt.Color;importjava.awt.Graphics;publicclassRoll... import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;

public class RollWords extends Applet implements Runnable {
/*static {
new Thread(new RollWords()).start();
}*/
int i = 20;

@Override
public void paint(Graphics g) {
//Color c = g.getColor();
g.drawRect(20, 20, 30, 30);
g.setColor(Color.BLUE);
g.fillRect(20, 20, 30, 30);
g.setColor(Color.BLACK);
if (i > 50)
i = 20;
g.drawString("小子", i, 30);
i = i + 2;
}

@Override
public void run() {
try {
while (true) {
repaint();
Thread.sleep(1000);
}
} catch (Exception e) {
System.out.println("出错了,小子");
}

}
public static void main(String[] args) {
new Thread(new RollWords()).start();
}
}
展开
 我来答
heptnaol
推荐于2016-07-06 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1841万
展开全部
加入
public void init()
{
new Thread(this).start();
}
这个是Applet生命周期中的初始化调用,这里启用线程即可。

删除public static void main(String[] args) {
new Thread(new RollWords()).start();
},这个没用,Applet不用main执行,而是用appletViewer或者浏览器执行。
更多追问追答
追问
可以运行了!!!谢谢
顺便问下,如果把你的代码换成

static {
new Thread(new RollWords()).start();
}
去掉main方法,再运行,也还是不能实现汉字的滚动
问题出在哪里???
追答
哦,因为你当前的Applet对象是被AppletViewer或者浏览器加载的,必须是this,才具有Applet运行的环境,你在new一个,是不行的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式