Java jtextarea.settext()方法是否已缓冲?

Java jtextarea.settext()方法是否已缓冲?,java,applet,java-io,Java,Applet,Java Io,我不是java开发人员,但我需要编写一个小applet通过ftp上传文件 (事实上,我是一名网络开发人员)。除了反馈信息的显示方式外,一切正常。让我举例说明: 如果我写了这样的东西,在方法内部(由单击事件控制) 当我尝试运行此代码时,连接已设置(在连接之后,我上传文件没有问题),但在JpanelmyJpanel中,我立即读取“已连接”(虽然连接需要几秒钟),并且我从未看到“连接到远程服务器”字符串 在我看来,Jpanel setText方法似乎是以某种方式缓冲的。 如何实时显示消息 (我尝试过使

我不是java开发人员,但我需要编写一个小applet通过ftp上传文件 (事实上,我是一名网络开发人员)。除了反馈信息的显示方式外,一切正常。让我举例说明:

如果我写了这样的东西,在方法内部(由单击事件控制)

当我尝试运行此代码时,连接已设置(在连接之后,我上传文件没有问题),但在JpanelmyJpanel中,我立即读取“已连接”(虽然连接需要几秒钟),并且我从未看到“连接到远程服务器”字符串

在我看来,Jpanel setText方法似乎是以某种方式缓冲的。
如何实时显示消息

(我尝试过使用System.out.println进行测试,效果非常好!)
谢谢

如果我在一个方法(由点击事件控制)中写了这样的东西

事件侦听器中执行的代码在EDT上执行。问题是长时间运行的任务阻塞了Swing EDT。因此GUI永远没有机会重新绘制自己

有关更多信息和解决方案,请阅读上的Swing教程部分。基本解决方案是为长时间运行的任务创建一个单独的线程

这也是System.out.println(..)工作的原因,因为它在不同的线程上执行

//....
myJpanel.setText("Connecting to remote server");

//actually, it's surrounded by try-catch statement
myFtpObject.connect(); //this is taken from a third part package 
myJpanel.setText("Connected")