2011-10-18 5 views
1

EDTのdoInBackgroundから特定の関数を実行したいとします。私は現在、パブリッシュとプロセスを使ってセットアップを行っていますが、これは問題なく動作しています。しかし、公開とプロセスを使用せずにdoInBackgroundからEDT上で関数を実行する方法があるかどうかを知りたい。また、invokeLaterを使用せずに。何とかこれをやることができますか?あなたはEDTの上に任意のコードをキューと同じようにdoInBackgroundのEDTで関数を実行する

答えて

2

あなたはこれを行うだろう:イベントキューに追加された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; 
    } 
+0

申し訳ありませんが、invokeLaterを指定しないか、公開して処理している必要があります。 – Graham

+0

@Graham:それは意味をなさないので、あなたは "no invokeLater"をどういう意味ですか?なぜあなたはinvokeLaterを***として使用できないのでしょうか?***解決策はありますか? –

+0

これはまさに私が知りたかったものです。 invokeLater以外の別の解決策がある場合、または公開して処理している場合もし存在しなければ、私の質問に答えます。 – Graham

関連する問題