Java SwingWorker问题

Java SwingWorker问题,java,multithreading,user-interface,try-catch,event-dispatch-thread,Java,Multithreading,User Interface,Try Catch,Event Dispatch Thread,我正在尝试用java的GUI制作一个基于文本的游戏,我需要使用SwingWorker。然而,我不理解任何教程,它对我来说毫无意义:( 本质上,我试图做的是将一个字符串传递给一个方法并逐字符打印出来,但是我不能,因为sleep()会中断EDT并锁定GUI以获取msg.length()*400ms:( 如果有人有使用SwingWorker的代码解决方案,我将非常感激(l:)您可以简单地尝试一下,了解如何使用带有字符串的SwingWorker: public void runInBackgroud(f

我正在尝试用java的GUI制作一个基于文本的游戏,我需要使用SwingWorker。然而,我不理解任何教程,它对我来说毫无意义:(

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


如果有人有使用SwingWorker的代码解决方案,我将非常感激(l:)

您可以简单地尝试一下,了解如何使用带有字符串的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 ( );
}
public void runinbackground(最终字符串msg)
{
SwingWorker任务=新SwingWorker()
{
公共对象doInBackground()
{
写(msg);
返回null;
}
公众假期结束()
{}
};
task.execute();
}

只需调用此方法
runInBackgroud(msg);

您可以简单地尝试一下,了解如何使用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 ( );
}
public void runinbackground(最终字符串msg)
{
SwingWorker任务=新SwingWorker()
{
公共对象doInBackground()
{
写(msg);
返回null;
}
公众假期结束()
{}
};
task.execute();
}

只需调用此方法
runInBackgroud(msg);

为什么要在“基于文本的游戏”中使用swingworker?swingworker应该与Swing一起使用……基于文本的游戏仍然有一个GUI
(true){
是无止境的循环,我看到有
break;
,但最好将
true
更改为局部变量,以便更快地发布一个简短的、可运行的、可编译的、大约在上午发布的问题,
JFrame
JTextArea
SwingWorker
,在这个论坛上的值是
Random
(以SSCCE形式)大约35-50行关于同一问题使用上述代码时遇到了什么问题?从
SwingWorker
doInBackground()
调用此方法时,您发现了什么问题?问题是我不知道如何使用SwingWorker执行此操作。如果没有SwingWorker,它只会为msg.length()锁定gui*400ms为什么要在“基于文本的游戏”中使用swingworker?swingworker应该与Swing一起使用…基于文本的游戏仍然有一个GUI
while(true){
是无止境的循环,我看到有
break;
,但最好将
true
更改为局部变量,以便更快地发布一个简短的、可运行的、可编译的、大约在上午发布的问题,
JFrame
JTextArea
SwingWorker
,在这个论坛上的值是
Random
(以SSCCE形式)大约35-50行关于同一问题使用上述代码时遇到了什么问题?从
SwingWorker
doInBackground()
调用此方法时,您发现了什么问题?问题是我不知道如何使用SwingWorker执行此操作。如果没有SwingWorker,它只会将gui锁定为msg.length()*400ms