我有以下的Applet类:更新Java小程序使用标签线程
public class Marquee extends Applet {
Label label1 = new Label("Testing");
public void pushUpdate(String text) {
System.out.println("receiving: " + text);
label1.setText(text);
repaint();
}
public void init() {
ScrollText_2 scrollObj = new ScrollText_2("Applet test");
scrollObj.setApplet(this);
add(label1);
scrollObj.run();
}
}
的ScrollText2类实现Runnable,并有一个滚动()方法。现在,所有的滚动方法都会返回该对象包含的字符串。这个类的run()方法是这样的:
while(true) {
try {
marquee.pushUpdate(scroll());
Thread.sleep(2000);
}
catch (InterruptedException e) {}
}
的问题是,当我运行小程序,如果我调用.RUN()方法,然后在字幕标签永远不会显示。我尝试了repaint(),只是label.setText(),updateUI()和redraw()尝试让applet显示更新,但没有奏效。
任何建议将不胜感激。
谢谢!
确实
你的代码工作正常“接收:...”打印从控制台?如果没有,那么问题可能是您在将线程置于睡眠状态之前可以更新UI。在这种情况下,尝试删除'Thread.sleep(2000)'。 – Jon
是的,接收println打印出来,UI似乎并没有更新。 –
您是否尝试去除'Thread.sleep'? – Jon