我試圖讓我的程序在按下gui上的按鈕時跳出while循環。if語句在while(true)循環中沒有執行
我有一個線程啓動GUI線程和等待,直到按下應用按鈕。 下面是代碼:
public void run() {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
// Wait until apply button clicked and set team
while(true) {
applyClicked = gui.getApplyClicked();
if (applyClicked == true) {
teamYellow = gui.getTeam();
break;
}
}
但是,即使當我點擊應用和applyClicked在GUI中爲真不執行該if語句。
但是,如果我在下面添加一條打印線,那麼它的工作正常。
我也調試它一行一行地運行,變量設置正確,它的工作原理。
爲什麼在我沒有println時不工作?這與線程有關嗎?
感謝
'volatile'? (也是,忙等待循環,不好!) – 2012-02-24 18:30:35
揮發工作。如果沒有一個繁忙的等待循環,我怎麼會從gui中得到布爾值到包含該循環的類? – sam 2012-02-24 20:47:47