2016-09-05 6 views
0

안녕하세요이 같은 무대를로드 절차 :showAndWait의 자바 FX 후 프로그램 실행을 계속

@FXML 
public void clickButton() { 
    System.out.println("------here-----"); 
    stage.close(); 
} 

내 문제가되면 그 :이 코드와 함께 버튼이

그리고 내 버튼을 클릭하면 "toto"라는 메시지가 보이지 않습니다. 왜 ?

감사합니다.

+1

'stage.close'는 필드에 대한 언급인가, 메소드 호출인가? – n247s

+0

제 클래스에서 clickButton (genericController)을 사용하는 경우, 내 MainApp에서 스테이지를 참조하는 변수 "stage"가 있습니다. 나는 이렇게 초기화한다 : "genericController.setStage (MainApp.getInstance(). getPrimaryStage());" – Benj

+0

죄송합니다. "stage.close();"입니다. – Benj

답변

1

전화 번호 showAndWait은 기본 단계에서 허용되지 않습니다.

From the javadoc

예외 :
        [...]
        IllegalStateException -이 방법의 기본 단계에서 호출되는 경우. 당신이 (당신이 Platform.setExplicitExit(false)을 사용하지 않은 asumming) 폐쇄 된 응용 프로그램의 마지막 창 후 코드를 실행하려면 또는 경우

MainApp.getInstance().getPrimaryStage().setOnHidden(evt -> { 
    System.out.println("toto"); 
}); 
MainApp.getInstance().getPrimaryStage().show(); 

:

당신은 대신 onHidden 이벤트 핸들러를 사용할 수 있습니다 당신은 무시할 수있다 Application.stop() :