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();
}
} 展开
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();
}
} 展开
展开全部
加入
public void init()
{
new Thread(this).start();
}
这个是Applet生命周期中的初始化调用,这里启用线程即可。
删除public static void main(String[] args) {
new Thread(new RollWords()).start();
},这个没用,Applet不用main执行,而是用appletViewer或者浏览器执行。
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一个,是不行的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询