java - 在与主线程不同的另一个线程中启动 swing gui,以在计算时更新 jtextarea

标签 java multithreading swing

我的程序现在开始

          public static void main(String[] args){
          new Gui().setVisible(true);
         new Program();   }

我正在使用 Jtextarea 来显示结果。 我在 Gui display(String) 中有方法。它将文本附加到 Jtextarea。 我从程序中调用 display(String ) 来显示结果。我在 Program 中有一些方法可以做一些工作并调用该方法以在执行结束时显示 Program 方法。但是,如果我在执行开始时调用 display(String) ,它将不会显示在 Jtextarea 中,直到程序的方法完成。它没有更新 Gui。我想我需要使用 invoklater 和新的 runnable 来启动 Gui 的 EDT,但如何在 main 中与新程序一起执行此操作。 那么这个问题的解决方案是什么? 感谢您的帮助。

附注我用谷歌搜索了但不知道如何做。所以这是最后一个资源

最佳答案

每个人似乎都忽略了一件大事:这是 JTextArea.append 的 swing 文档的实际引用:

This method is thread safe, although most Swing methods are not. Please see How to Use Threads for more information.

所以看来 SwingUtilities.invokelater 应该与此无关。我真的不知道是什么导致了你的问题。如果您发布一些代码,我也许可以提供更多帮助。

P。 S:我本想将此作为评论,但我没有这样做的声誉。

关于java - 在与主线程不同的另一个线程中启动 swing gui,以在计算时更新 jtextarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710330/

相关文章:

c - 多核和多 CPU 环境中的 mmap 线程安全

java - JSlider 未从鼠标事件正确更新

java - AppConfig.java 返回带有私有(private)构造函数的 bean?

java - 有没有办法获取 MPEG 文件的元数据(如高度、帧率、比特率)?

java-me - 将 Java 手机/电话上的通话保存为 mp3 或任何音频格式/文件

Android 声音播放延迟到 while 循环结束

multithreading - 如何限制 kotlin 协程的最大并发性

java 更新 Jpanel 组件

java - 计时器在我的代码中无法正常工作

java - 最终变量 System.out 如何更改其引用?