Java 5 SwingWorker 替换

标签 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();
}

最佳答案

我会让其他人评论您的代码的适用性,但作为替代方案,您可以下载 Swingworker 的反向端口以用于 Java 5 here .

关于Java 5 SwingWorker 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076613/

相关文章:

Java调用类型性能

java - 如何用文字做一个空心的正方形?

java - Component.setBounds 调用 Component.repaint?

Java JLabel 多行高度

java - 在 SwingWorker 外部访问发布

java - 用于两个数据库连接的通用 spring 数据存储库

加载事实实例时出现 Java 错误 java.lang.NoClassDefFoundError

Java .jar 应用程序无法在 Mac Os X Snow Leopard 上启动

java - 启动 swing 应用程序的最佳实践

java - 线程和按钮 : How to restart the program after its finished running