2016-09-05 5 views
0

後、プログラムの実行を続行こんにちは私はこのような段階をロードする手順を持ってshowAndWaitのJavaFXの

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

私の問題が後ということであり、私のボタンをクリックしたとき、 "toto"というメッセージは表示されません。どうして ?

ありがとうございました。

+1

'stage.close'はそのフィールド、またはメソッドの呼び出しにrefference? – 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()をオーバーライドすることができます:

@Override 
public void stop() throws Exception { 
    System.out.println("toto"); 
} 
関連する問題