0

これは、2015 年 8 月 16 日のこのスレッドの続きです

Searchを使用するようにプログラムを変更していますSwingWorker。元のコード (main以下に示す) にThreadは、呼び出されmain、特定のノードから「ファイル ツリーをたどる」コードがあります。

  public static void main(String args[]) {
      EventQueue.invokeLater(new Runnable() {
        public void run() {
          gui = new GUI();
          Utilities.disable(GUI.btnStop);
        }});   
     t = new Thread(new TASK());
     taskStarted = false;
  }
}

の元のクラス ヘッダーは次のTASKとおりです。

public class TASK extends SimpleFileVisitor<Path> implements Runnable{

しかし、を使用するにはSwingWorker、(私は推測します)TASK extends SwingWorker元のrunコマンドを違法にする必要があります (エラー: runis finalin SwingWorker)。

これがオリジナルrunです:

  public void run() 
  {
      SearchyGUI.disposition = FileVisitResult.CONTINUE;
      Files.walkFileTree(path , this);
  }

を使用できないためrun、クラスの初期化の上のコードを次のように作成しましたTASK

public class TASK implements SwingWorker implements FileVisitor<Path> {
  public void TASK() 
  {
      System.out.println("Here we are starting TASK...");
      SearchyGUI.disposition = FileVisitResult.CONTINUE;
      Files.walkFileTree(path , this);
  }

しかし、現在、main以下の行でエラーが発生しています (現在、TASK は runnable を実装していないため、適切なコンストラクターはありません....):

 t = new Thread(new TASK());

そして、GUI が表示されたと言ってもnew TASK();、[検索] ボタンをクリックしても何も起こりません。ファイル ウォークはありません。エラーなし。からの出力TASKも表示されません。したがって、呼び出す機会はありませんSwingWorker。(実際、何が起こるかを確認するために [何も] TASK:のクラス ヘッダーから削除しましたpublic class TASK /*extends SwingWorker*/ implements FileVisitor<Path>。)

明らかな間違いがある場合は、それを確認したいと思います。そうでない場合は、長い時間をかけてSSCCE.

4

1 に答える 1