gui의 버튼을 눌렀을 때 프로그램을 중단 시키려고합니다.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는 그 if 문을 실행하지 않는 GUI 내에서 진정한된다.
그러나 실제로 인쇄 할 때 아래에 인쇄 줄을 추가하면 정상적으로 작동합니다.
또한 한 줄씩 실행하면서 변수를 올바르게 디버깅하여 작동합니다.
왜 내가 println을 가지고 있지 않을 때이 기능이 작동하지 않습니까? 스레드와 관련이 있습니까?
감사
'휘발성'? (또한, 바쁜 대기 루프, 나쁜!) –
휘발성 일했습니다. 어떻게하면 GUI에서 대기 루프가없는 루프가 포함 된 클래스로 부울을 가져올 수 있습니까? – sam