从doInBackground在EDT上运行函数

时间:2011-10-18 17:57:54

标签: java swing swingworker event-dispatch-thread

我想在EDT上运行doInBackground中的某个函数。我目前使用发布和流程设置它正常工作。但是,我想知道是否有办法在不使用发布和进程的情况下从doInBackground在EDT上运行函数。另外,不使用invokeLater。我能以某种方式这样做吗?

1 个答案:

答案 0 :(得分:2)

您可以这样做,因为您将任何代码排队到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;
   }