事情是這樣的:我有一個Java應用程序主窗口的JFrame,它包含一個帶有多個JProgressBar的面板。我想爲每個JProgressBar啓動一個Thread,它將自己啓動另一個Threads。當這些「次要」線程完成時,我想更新我的JFrame中的JProgressBar。此外,在安排所有這些之前,因爲我不希望用戶能夠點擊JFrame上的任何內容,我還想在JFrame中設置一些(false)一些按鈕。簡單?JFrame調用多個併發線程來更新調用者JFrame中的JProgressBar
ActivarBotones abFalse = new ActivarBotones(false);
abFalse.start();
try {
abFalse.join();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
EstablecerConexiones ec = new EstablecerConexiones();
ec.start();
try {
ec.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ActivarBotones abTrue = new ActivarBotones(true);
abTrue.start();
兩個問題。
如果我從上面運行的代碼,沒有得到更新。如果我只啓動ec線程,那麼一切都很正常。
我對同步瞭解不多,不知道該怎麼做才能同時啓動所有「主」線程。
任何線索?
當您從其他線程更新JProgressBar時,是從AWT EventQueue線程內部調用它們嗎? –