这个小applet应该从applet框架的底部到顶部移动一个String,当它到达顶部时它应该再次从底部开始。问题是当我调整applet窗口大小时它才会移动。它不会自行移动,为什么它会这样运作?
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Zad1 extends Applet implements Runnable {
Thread runner;
int yPos = 500;
public void start() {
if (runner == null) {
runner = new Thread(this);
}
}
public void stop() {
if (runner != null) {
runner = null;
}
}
public void run() {
while (true) {
repaint();
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void paint(Graphics g) {
g.drawString("Hello java", 50, yPos);
yPos--;
if (yPos < -30)
yPos = 500;
}
}
答案 0 :(得分:1)
线程未启动
runner = new Thread(this);
runner.start(); // <----------- Insert this!
但请注意,这个applet的样式在很多方面都很糟糕(例如,“paint”中应该没有逻辑,你可能根本不应该覆盖Applet的“paint”,你应该考虑使用JApplet等。 ..)。您应该阅读http://docs.oracle.com/javase/tutorial/uiswing/components/applet.html和其他示例。