首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaFx setOnCloseRequest&File检查等待

JavaFx setOnCloseRequest&File检查等待
EN

Stack Overflow用户
提问于 2018-06-04 00:09:21
回答 1查看 0关注 0票数 0

我有两个窗口。如果属性文件不存在,则第一个启动。第二个是打开,如果文件已经存在,或者当用户点击创建文件的按钮时。这里是代码:

代码语言:javascript
复制
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();
                    }
                });

之前,我没有使用setOnCloseRequest,而是使用“primaryStage.show();” 但无论如何,在关闭第一个窗口后,这会打开第二个窗口。所以,如果我按下按钮,它会打开,但如果我点击顶部角落的X。我尝试了setOnCloseRequest来检查用户在退出之前是否设置了他的名字,它不会在我用X关闭时显示,但在按下按钮时也不会打开。我希望它打开时,按下按钮,而不是X.我'认为'问题可能是,当用户按下按钮,它“立即”检查文件,但它尚未创建。

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 09:26:43

代码语言:javascript
复制
if(prop.getProperty("name") != null || f.exists()) {
    primaryStage.show();
} else {
    e.consume();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档