Ứng dụng Swing của chúng tôi thực hiện một số tác vụ chạy dài trong chuỗi nền bằng cách sử dụng lớp SwingWorker tuyệt vời. Tuy nhiên, rất nhiều máy Mac cũ chỉ hỗ trợ Java 5, vì vậy chúng tôi muốn biên dịch ứng dụng của chúng tôi là 5 thay vì 6. Vì SwingWorker đã được giới thiệu trong Java 6, chúng tôi không thể sử dụng nó nữa.Java 5 SwingWorker thay thế
Sau đây có phải là một sự thay thế có thể chấp nhận được nếu tôi chỉ cần làm điều gì đó trong nền và sau đó truyền đạt nó trong GUI khi hoàn thành? Hay tôi quên thứ gì đó quan trọng?
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();
}
Trên thực tế, nó eppears rằng đây là việc thực hiện ban đầu của SwingWorker, và rằng Sun đã chuyển nó vào thư viện chuẩn. –