Java 5 SwingWorker替换

Kee*_*ist 5 java swing swingworker

我们的Swing应用程序使用优秀的SwingWorker类在后台线程中执行一些长时间运行的任务.但是,许多较旧的Mac只支持Java 5,因此我们希望将应用程序编译为5而不是6.因为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();
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*iam 10

我会让其他人评论你的代码的适用性,但作为替代方案,你可以在这里下载一个Swingworker的后端,用于Java 5 .