gpt4 book ai didi

java - 使用线程更新 Java Applet 标签

转载 作者:行者123 更新时间:2023-12-03 23:03:50 26 4
gpt4 key购买 nike

我有以下 Applet 类:

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 并且有一个 scroll() 方法。现在,所有 scroll 方法所做的就是返回对象包含的字符串。此类的 run() 方法如下所示:

while(true) {
try {
marquee.pushUpdate( scroll() );
Thread.sleep( 2000 );
}
catch (InterruptedException e) {}
}

问题是,当我运行小程序时,如果我调用 .run() 方法,选取框上的标签将永远不会显示。我已经尝试过 repaint()、label.setText()、updateUI() 和 redraw() 来尝试让小程序显示更新,但没有成功。

如有任何建议,我们将不胜感激。

谢谢!

最佳答案

您不调用 Thread 或 Runnable 的 run()。您在 Thread 或包含 Runnable 的 Thread 上调用 start()。此外,您需要注意在 GUI 线程上更新 GUI 组件。对于 Swing,这意味着使用 SwingUtilities.invokeLater(someRunnable),我怀疑它可以通过 AWT 类似地完成。

顺便问一下,为什么使用 AWT 而不是 Swing?

关于java - 使用线程更新 Java Applet 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com