2013-03-05 86 views
0

我正在開發/開發一個桌面應用程序,其中按鈕有actionlistener並且執行大量的後臺任務,我沒有使用線程,等待,通知或睡眠。我只是混淆了哪一個學習和哪一個使用,否則當我點擊按鈕,JFrame只是凍結。Java中的線程,等待,通知,睡眠

1)有人可以建議我使用什麼和更容易?

2)我正在使用jprogress欄和setvalue(n)方法,但我想用加載的時間自動替換n,我該怎麼做?

回答

1

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()