0
我有兩個窗口。如果屬性文件不存在,則第一個啓動。第二個是(我希望它)打開,如果文件已經存在,或者當用戶點擊創建文件的按鈕時。這裏是代替setOnCloseRequest代碼....JavaFx setOnCloseRequest&File check wait
try {
if(f.exists()) {
input = new FileInputStream("config.properties");
prop.load(input);
}
if(f.exists() && prop.getProperty("name") != null){
primaryStage.show();
}else if(prop.getProperty("name") == null || !f.exists()){
try {
Stage stage = new Stage();
FXMLLoader loader = new FXMLLoader(getClass().getResource("summ.fxml"));
Parent root1 = loader.load();
stage.setTitle("temp");
stage.setResizable(false);
stage.setScene(new Scene(root1));
stage.showAndWait();
summController summController = loader.getController();
String name = summController.getName();
stage.setOnCloseRequest(e->{
if(prop.getProperty("name") != null || f.exists()) {
primaryStage.show();
}
});
之前,我剛做了 「primaryStage.show();」但無論如何,在關閉第一個窗口後,這會打開第二個窗口。所以,如果我按下按鈕,它會打開,但如果我點擊頂部角落的X.我不想要它。我嘗試了setOnCloseRequest來檢查用戶在退出之前是否設置了他的名字(基本上如果他按下按鈕來保存),它不會在我用X關閉時顯示,但在按下按鈕時也不會打開。我希望它打開時,按下按鈕,而不是X.我'認爲'問題可能是,當用戶按下按鈕,它「立即」檢查文件,但它尚未創建... 。
感謝您的回答!
謝謝!有效。 – RekTek249