我试图让我的程序在按下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