我們的Swing應用程序使用優秀的SwingWorker類在後臺線程中執行一些長時間運行的任務。但是,很多舊版Mac僅支持Java 5,因此我們希望將應用程序編譯爲5而不是6。由於SwingWorker是在Java 6中引入的,因此我們不能再使用它了。Java 5 SwingWorker替換
如果我只需要在後臺執行某些操作,並在完成後在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();
}
實際上,這是SwingWorker的原始實現,Sun將它移植到標準庫。 – 2010-11-02 10:46:12