JavaFx setOnCloseRequest & 文件检查等待

2024-03-02

我有两个窗户。如果属性文件不存在,则启动第一个。第二个是(我希望它)在文件已经存在或用户单击创建文件的按钮时打开。这是代码......

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。我“认为”问题可能是当用户按下按钮时,它“立即”检查文件,但尚未创建... 。

感谢您的回答!


如果您不想关闭窗口,则应该使用关闭请求事件:

if(prop.getProperty("name") != null || f.exists()) {
    primaryStage.show();
} else {
    e.consume();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaFx setOnCloseRequest & 文件检查等待 的相关文章

随机推荐

  • 在 Spring 批处理写入期间确定块中失败项目的方法

    有哪些方法可以记录在写入 10 个项目大小的块期间失败的确切项目 有没有办法在 ItemWriteListener 的 onWriteError 方法中捕获它 是否可以通过扩展 ItemWriter 接口来知道这一点 感谢致敬 尼克 你可以
  • 如何在 Python 2 中正确编码向量化函数条目

    所以我玩了一些我在网上找到的使用Python 3处理优化的代码 修改后 它呈现了这样的图 现在我正在使用Python 2 并且 尚未处理 我相信问题是Python迭代 但是当遵循中建议的括号技巧时我没有得到任何结果这个帖子 https st
  • 如何获取Xvfb显示编号

    如何获取运行 Xvfb 时使用的显示编号 例如有人跑 Xvfb 14 我需要以某种方式获取使用过的显示器编号 14 提前致谢 在 UNIX 系统上 运行 ps ef grep Xvfb 它应该将其与流程一起列出
  • 在 Android 中使用 RegEx 分割字符串

    我一直在尝试分开Strings使用正则表达式没有成功 这个想法是将给定的音乐文件元数据与其文件名分开 以便 01 Kodaline Autopilot mp3 会导致 metadata 0 01 metadata 1 Kodaline me
  • Rails:编辑表单中的序列化数据

    我有一个模型 它有一个参数 即序列化哈希 我希望能够使用内置的 Rails 功能来编辑表单中的哈希值 这是almost在职的 如果您填写表单并提交 参数将被正确序列化 并且在控制器中模型将使用预期值构建 当我希望表单显示现有模型时 它就会崩
  • 要求通用方法在 FAIL 时抛出特定异常类型

    是的 我知道我完全会看起来像个白痴 但我的大脑只是not今天早上开始工作 我想要一种方法 我可以说 如果它变坏 则返回这种类型的异常 对吧 例如 类似 这不起作用 static ExType TestException
  • CTC:空格和空白有什么区别?

    2006年article https www cs toronto edu graves icml 2006 pdf关于联结主义时间分类 Alex Graves co 引入了一种解码语音的模型27标签 26 个用于字母表字母 1 个用于bl
  • C++ 防止 const 方法通过成员指针或引用更改数据

    假设我有一个像这样的简单课程 class Foo public void foo const str 5 x obj gt changeTheWorld x 4 y get 5 obj2 gt changeTheWorld private
  • Mongodb查找对象内最长数组的查询

    我目前在 mongo 中为我的应用程序设置了这样的对象 简化的示例 为了清楚起见 我在这里删除了一些不相关的字段 id ObjectId 529159af5b508dd71500000a c somecontent l d 2013 11
  • JNI 错误:访问过时的弱全局引用

    我在本机代码中缓存了对 Java 对象的引用 如下所示 java global reference deleter JAVA ENV is an instance of JNIEnv that is cached globally and
  • Apache Nifi:使用更新记录处理器替换列中的值

    我有一个 csv 看起来像这样 name code age Himsara 9877 12 John 9437721 16 Razor 232 45 我必须更换色谱柱code根据一些正则表达式 我的逻辑如下面的 Scala 代码所示 if
  • 如何在 couchdb 中索引多维数组

    我有一个多维数组 我想用 CouchDB 对其进行索引 实际上使用 Cloudant 我的用户有他们所属团队的列表 我想搜索找到该团队的每个成员 因此 获取所有具有 ID 为 79d25d41d991890350af672e0b76faed
  • 数据建模草稿/报价/订单/发票

    我目前正在开发一个小项目 我需要对以下场景进行建模 Scenario 客户打电话来 他想要一辆新车的报价 销售代表 登记客户信息 销售代表 在系统中创建报价 并将一个项目添加到报价中 汽车 销售代表 通过电子邮件将报价发送给客户 客户接受报
  • GWT 应用程序仅在 IE 中抛出“JavaScriptException”,堆栈跟踪没有有用的信息

    我的 GWT 应用程序在某个时刻抛出 JavaScriptException 此问题仅出现在 Internet Explorer 中 IE 8 和运行 IE7 模式的 IE 8 堆栈跟踪如下 com google gwt core clie
  • App Center iOS 安装错误:“无法安装此应用程序,因为无法验证其完整性”

    我发现这个问题已被问过很多次 但我没有看到适合我的解决方案 因此我希望提供更多信息可能会有所启发 We use 应用中心 ms https appcenter ms 测试 iOS 应用程序 在我们的 iOS 证书过期之前 此方法运行良好 我
  • 从设备查看或检索 Core Data .sqlite 文件

    我怎样才能真正在真实设备 而不是模拟器 上查看核心数据存储的 sqlite 文件 是否有工具可以让您查看核心数据信息 在 Xcode 中 打开设备窗口 shift cmd 2 从左侧列表中选择您的设备 从 已安装的应用程序 列表中选择您的应
  • 如何自动补全特定目录下的文件?

    我创建了一个命令memo如下 memo vi HOME memo 1 我想将 bash completion 应用于我的memo打开已经存在的文件 HOME memo目录 memo TAB to show files in HOME mem
  • 凸多面体的质心

    我有一个封闭的凸多面体 它由凸多边形 面 数组定义 而凸多边形 面 由 3D 空间中的顶点数组定义 我试图找到多面体的质心 假设密度均匀 目前我用这个伪代码中的算法计算它 public Vector3 getCentroid Vector3
  • VirtualBox 上的 Mac 操作系统无法识别 Iphone

    我一直在尝试将 iPhone 连接到 Mac OS High Sierra 我已经安装在 VirtualBox 上来测试我正在尝试开发的 swift 应用程序 但是 即使我将手机连接到 USB 我也无法从设备中选择手机 设备部分中的消息显示
  • JavaFx setOnCloseRequest & 文件检查等待

    我有两个窗户 如果属性文件不存在 则启动第一个 第二个是 我希望它 在文件已经存在或用户单击创建文件的按钮时打开 这是代码 try if f exists input new FileInputStream config propertie