-1
我有我想執行的任務,等待一秒鐘,移動的進度條,然後執行另一項任務,等待進度條,執行程序等Java定時器 - 執行任務,等待,執行任務。沒有了Thread.sleep()
如果我使用
Thread.sleep()
它凍結了我的GUI,不允許我的進度條移動。我曾嘗試以下幾個問題:
Make something wait without using Thread.sleep()?
Make a java program sleep without threading
我的代碼是與此類似:
import java.util.*
...
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
Runtime.getRuntime().exec("cmd /c del file");
} catch (IOException ex) {
Logger.getLogger(AdminHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 1000);
progressBar.setValue(16);
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
Runtime.getRuntime().exec("cmd /c del file");
} catch (IOException ex) {
Logger.getLogger(AdminHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 1000);
progressBar.setValue(32);
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
Runtime.getRuntime().exec("cmd /c del file");
} catch (IOException ex) {
Logger.getLogger(AdminHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 1000);
progressBar.setValue(48);
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
Runtime.getRuntime().exec("cmd /c del file");
} catch (IOException ex) {
Logger.getLogger(AdminHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 1000);
progressBar.setValue(64);
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
Runtime.getRuntime().exec("cmd /c del file");
} catch (IOException ex) {
Logger.getLogger(AdminHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 1000);
progressBar.setValue(80);
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
Runtime.getRuntime().exec("cmd /c del file");
} catch (IOException ex) {
Logger.getLogger(AdminHome.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 1000);
progressBar.setValue(100);
progressBar.setString("Done!");
timer.schedule(new TimerTask() {
@Override
public void run() {
}
}, 1000);
System.exit(0);
在此先感謝您的幫助。
Riccorbypro
你需要在一個單獨的線程比你的任務 –
運行GUI'凍結我的GUI,不讓我的進度條移動你需要在一個單獨的線程中實現後臺任務(包括等待)。就以[這個問題](http://stackoverflow.com/questions/2668389/java-gui-need-to-pause-a-method-without-freezing-gui-aswell) –
@defaultlocale我已經嘗試了一看SwingWorker,無濟於事。我還能嘗試什麼? – Riccorbypro