gpt4 book ai didi

java - SwingWorker 问题

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:25 25 4
gpt4 key购买 nike

我正在尝试用 java 制作一个带有 GUI 的基于文本的游戏,我需要使用 SwingWorker。但是我不明白任何教程,它对我来说没有意义:(。

public void write(String msg){
int i=0;
while(true){
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
console.setText(console.getText()+ msg.charAt(i));
if(i==msg.length()){
console.setText(console.getText()+ newline);
break;
}
}
}

本质上,我想做的是将一个字符串传递给一个方法并逐个字符地打印出来,但是我不能,因为 sleep() 会中断 EDT 并锁定 msg.length()*400ms 的 GUI :(。

如果有人有使用 SwingWorker 的代码解决方案,我将不胜感激:)

最佳答案

您可以简单地尝试一下,以了解如何将 swingworker 与某些字符串一起使用:

public void runInBackgroud(final String msg)
{
SwingWorker<Object, Object> task = new SwingWorker<Object, Object> ( )
{
public Object doInBackground()
{
write(msg);
return null;
}
public void done()
{}
};
task.execute ( );
}

然后调用这个方法runInBackgroud(msg);

关于java - SwingWorker 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020248/

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