これは、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.