我有一個應用程序,當發生異常時我會調用下面的代碼 - 也就是說,它位於「try/catch」的「catch」中。它只是創建一個「彈出式」的窗口,告訴用戶輸入一個int。如何關閉初級階段關閉時的所有階段?
Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.setScene(new Scene(VBoxBuilder.create().
children(new Text("Please enter an integer."), new Button("Ok.")).
alignment(Pos.CENTER).padding(new Insets(5)).build()));
dialogStage.show();
唯一的問題是,階段不散即使初級階段(即在公共無效啓動(階段primaryStage)的參數)被關閉。
有什麼我試過?:
我做了dialogstage在全班同學可見的它定義爲一個類變量。然後我採取了以下代碼:
primaryStage.setOnCloseRequest((new EventHandler<WindowEvent>(){
@Override
public void handle(WindowEvent arg0) {
arg0.consume();
try
{
dialogStage.close();
}
catch(Exception ex)
{
System.out.print(ex.getMessage()+"\r\n");
}
}
}));
}
在這個「作品」,當用戶試圖退出主要應用dialogstage是封閉的,但是,它實際上並沒有做什麼,我想要的結果:當您嘗試關閉主要階段只有對話階段關閉。
這也是一個美學上令人不快的解決方案,因爲我不希望整個班級知道這個愚蠢的對話框,它只位於一個try/catch中,可能永遠不會被使用。
我想知道是否有一個簡單的解決方案,告訴dialogstage在主階段執行時關閉,並且我不需要在try/catch之外編寫大量代碼。
似乎不錯,但現在無法進行測試。謝謝。 –
像媽媽一樣工作。謝謝! –