当前位置: 首页 > 知识库问答 >
问题:

如何在调用stage.close()后防止代码执行?

赏彭薄
2023-03-14

我用的是JavaFX。

当某个文件没有加载时,我希望阶段关闭,该实例中的代码停止执行。

catch (FileNotFoundException ex)
{
    stage.close();
    System.out.println("This should not appear.");
}

共有1个答案

卜昂熙
2023-03-14

使用stage.setoncloserequest在舞台关闭前执行操作。像

 public void start(Stage primaryStage)
 {
       // do all the regular stuff.
       primaryStage.setOnCloseRequest(E -> {
            // perform actions before closing
       });
 }

应用程序类中重写stop()方法也是添加关闭挂钩的有效方法。虽然从经验来看,并不总是在应用程序关闭时调用它。

最后,如果要关闭整个应用程序,请使用platform.exit()(静态方法)。stage.close()方法等于stage.hide(),这意味着只隐藏窗口,应用程序不会关闭。

 primaryStage.setOnHiding(E -> {
      // perform actions upon hiding.
 });

如果希望第一个阶段等待第二个阶段,并且在第二个阶段关闭后使用secondarystage.showandwait()。这样,如果您想在第一阶段执行,只需关闭第二阶段。

 类似资料:
  • 我有一个可拖动的元素,在它里面,我有一个带有onclick事件的组件。在拖动结束时,将触发单击事件。我的可拖动元素看起来像这样。我使用了一个名为react-draggable的包。 头盔组件内部有onClick事件,它会打开一个对话框。当我拖动并释放该元素时,将打开此对话框。我的问题是如何防止这种行为,以及如何将它们与事件分开? 谢谢

  • 问题内容: 我正在制作一个Android应用程序,该应用程序对您所能获得的积分有时间限制。但是,如果您关闭该应用程序,计时器将继续运行。应用程序暂停时如何暂停? 问题答案: 您可以用类似的方法取消它 并使用该变量保存在一个或其他持久变量中。然后再次使用该变量以启动计时器 共享偏好

  • 问题内容: 如果我创建两个列表并将其压缩 然后我将z输入到两个列表中 那么,l1的内容就很好了[(1,7),(2,8),(3,9)],但是l2的内容只是[]。 我猜想这是python关于可迭代项的一般行为。但是,作为从C家族迁移的新手程序员,这对我来说没有意义。为什么会这样表现?有办法解决这个问题吗? 我的意思是,是的,在这个特定示例中,我可以将l1复制到l2中,但是总的来说,在迭代一次之后,是否

  • 问题内容: 我几乎可以肯定这是不可能的,但是值得一试。 我正在为某个工具编写命令行界面。我说的是一个调用另一个Java应用程序的Java应用程序。该工具在执行后调用,从而终止了我自己的执行环境。我不要 有什么方法可以忽略来电吗? 问题答案: 是的,使用SecurityManager可以实现。尝试以下 在您的班级中,使用以下调用:

  • 我有一个父pom,它为我的其他组件提供所需的版本号变量 您必须使用分类器将补充工件附加到项目中,而不是替换它们 我发现这是因为jar打包固有的maven jar插件默认绑定,但我正在进行war打包,所以在war打包之后,默认jar执行开始并抛出上面的一个。任何停止违约的解决方案都将帮助我提前感谢。

  • 问题内容: 我应该怎么做才能防止Spring MVC中的XSS?现在,我只是将输出用户文本的所有位置都放入标签或函数中,但这似乎容易出错,因为我可能会错过一个位置。 有没有简单的系统方法可以防止这种情况?也许像过滤器之类的?我通过在控制器方法上指定参数来收集输入。 问题答案: 在Spring中,你可以从标记生成的JSP页面中转义html 。这为XSS攻击提供了很多途径,并且可以通过以下三种方式自动