我们的 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();
}
最佳答案
我会让其他人评论您的代码的适用性,但作为替代方案,您可以下载 Swingworker 的反向端口以用于 Java 5 here .
关于Java 5 SwingWorker 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076613/