java - 从 doInBackground 在 EDT 上运行函数

标签 java swing swingworker event-dispatch-thread

我想在 EDT 上从 doInBackground 运行某个函数。我目前使用发布和处理来设置它,效果很好。但是,我想知道是否有一种方法可以在不使用发布和处理的情况下从 doInBackground 在 EDT 上运行函数。另外,不使用invokeLater。我可以以某种方式做到这一点吗?

最佳答案

您可以像将任何代码排队到 EDT 上一样执行此操作:通过添加到事件队列的 Runnable:

   protected void doInBackground() throws Exception {

      // code to be called off of the EDT

      SwingUtilities.invokeLater(new Runnable() {
         public void run() {

            // code to be called on the EDT

         }
      });
      return null;
   }

关于java - 从 doInBackground 在 EDT 上运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811613/

相关文章:

c# - 单元测试多线程代码时出现问题

java - 如何将 Action 与java中的任何gui界面绑定(bind)

java - 让 setMnemonic 下划线字符而不是第一次出现

Java Swing JOptionPane 按钮选项

Java SwingWorker 不能在 main 方法中工作?

Java - SwingWorker 和 SwingUtilities.invokeLater() 之间的区别

java - Diamond 不编译 Java 7

java - 用于显示 ProgressBar 的弹出窗口未在 JavaFX 中显示

java - 如何同时从表单中获取图像名称和另一个输入字段值到 servlet

java - SwingWorker worker 与 SerialEvent(应用于 JTextField )