0

私のプロジェクトは次のフローに従います。 ここに画像の説明を入力してください

私はswingworkerを使いたいです。これが私がそれを使っている方法ですが、結果は正しくありません

私のGUIコードでは、私のコードはプリンシパルクラスを実行するためのものです

ボタンコードで次のコード行を記述しました

     Main f2 = new Main();

    f2.execute();

私の校長クラスでは、私はこれをしました

      class Principalclass extends SwingWorker<Void, Void>
          {
            @Override
            public Void doInBackground() throws IOException 
             {
               //while loop
              }
           @Override
            public void done() {
              System.out.println("I am DONE");
              GUI b = new GUI();   
              b.ShowFrame();   //calls the function of the GUI to display frame
             }

これで、「I am DONe」を出力しないこのコードは、GUIフレームを表示します。swingworkerを使用しているクラス2、3、および4 bczで変更を行う必要がある場合、またはPrincipalclassでのみさらに変更を行う必要がある場合は混乱します。 、タスクを完了するのに15分かかるはずのアプリケーション、2秒しかかかりません:(。SwingWorkerを初めて使用しているので、何か深刻な問題を抱えている可能性があります。

4

1 に答える 1

0

Swing ワーカーを実行し、EDT から実行する必要があります。詳細については、こちらをご覧ください。

于 2012-05-18T05:57:27.087 に答える