我正在尝试用java做一个基于文本的游戏,我需要使用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;
}
}
}本质上,我试图做的是将一个字符串传递给一个方法并逐个字符地打印出来,但是我不能这样做,因为睡眠()会中断EDT并锁定msg.length()*400ms :(的图形用户界面。
如果任何人有一个使用SwingWorker的代码解决方案,我将非常感谢:)
发布于 2012-12-24 19:03:44
您可以尝试这样做,简单地了解如何将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);
https://stackoverflow.com/questions/14020248
复制相似问题