私たちのSwingアプリケーションは、優れたSwingWorkerクラスを使用して、バックグラウンドスレッドでいくつかの長時間実行タスクを実行します。ただし、古いMacの多くはJava 5しかサポートしていないため、アプリケーションを6ではなく5としてコンパイルしたいと考えています。SwingWorkerはJava 6で導入されたため、使用できなくなりました。
バックグラウンドで何かを実行し、完了したらGUIでそれを伝達するだけでよい場合、以下は許容できる代替品でしょうか?それとも私は何か重要なことを忘れていますか?
public static void wannabeSwingWorker(final Runnable doInBackground, final Runnable callback) {
Thread backgroundThread = new Thread(new Runnable() {
public void run() {
doInBackground.run();
SwingUtilities.invokeLater(callback);
}
});
backgroundThread.start();
}