我正在開發/開發一個桌面應用程序,其中按鈕有actionlistener並且執行大量的後臺任務,我沒有使用線程,等待,通知或睡眠。我只是混淆了哪一個學習和哪一個使用,否則當我點擊按鈕,JFrame只是凍結。Java中的線程,等待,通知,睡眠
1)有人可以建議我使用什麼和更容易?
2)我正在使用jprogress欄和setvalue(n)方法,但我想用加載的時間自動替換n,我該怎麼做?
我正在開發/開發一個桌面應用程序,其中按鈕有actionlistener並且執行大量的後臺任務,我沒有使用線程,等待,通知或睡眠。我只是混淆了哪一個學習和哪一個使用,否則當我點擊按鈕,JFrame只是凍結。Java中的線程,等待,通知,睡眠
1)有人可以建議我使用什麼和更容易?
2)我正在使用jprogress欄和setvalue(n)方法,但我想用加載的時間自動替換n,我該怎麼做?
1) 您需要將您的代碼運行時,您點擊按鈕進入一個新的線程。像這樣將工作:
public class Worker implements Runnable {
Thread t;
public Worker() {
t = new Thread(this);
}
@Override
public void run() {
//do stuff here
}
public void start() {
t.start();
}
}
然後當你點擊你的JFrame您的按鈕:
Worker w = new Worker();
w.start();
2)你可以調用setProgress()
任何int
(例如,在開始獲取當前時間,結束獲取當前時間,花費的時間=結束開始)。只要確保你也使用了setMaximum()
。
如果您使用的鞦韆GUI,你應該使用「的SwingWorker」類:
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/simple.html