java - system.out.println 必须在 edt 上吗?

标签 java swing event-dispatch-thread println swingutilities

我正在运行一些在 swingworker 中进行打印输出的代码。我没有得到打印输出,所以我使用了 SwingUtilities.invokeLater,现在它可以工作了。我没想到会是这样的结果,这是怎么发生的呢?我本以为 System.out.println 可以在 EDT 之外运行。

最佳答案

这将非常容易测试(更不用说,即使输入所有代码来测试它也比在此处发布它要少的工作):

import java.awt.EventQueue;
public class HelloWorld {
  public static void main( String[] args ) {
    System.out.println("Hello world");
    System.out.println( EventQueue.isDispatchThread());
  }
}

结果

Hello world
false

在控制台上。

所以是的,System.out.println 可以在 EDT 之外使用

关于java - system.out.println 必须在 edt 上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252388/

相关文章:

java - 根据条件链接可完成的 future

java外观和感觉: windows server 2012 shows progress bar too thin

java - 我应该在 Swing 中使用 setAction 还是 addActionListener?

java - 如何在 Java 中从 Jenkins 获取作业的最后构建日期

java - 我在一个运行良好的 EJB3 项目中收到 404 错误

java - JPanel 不绘画,JFrame 保持空白

java - 是否可以在不使用 EDT 的情况下在 Java Swing 中执行主动呈现?

java - 在 Swing 中刷新 BufferedImage 像素的惯用方法

Java - Gui 组件不显示

java - 重写 AbstractTableModel 类中的 isCellEditable 方法后 JTable 不可编辑