JavaFX Stage 关闭事件处理程序

标签 java events javafx

我在 JavaFX 中有一个可以通过多种方式关闭的舞台,通过单击红色 (X) 或通过调用 stage.close()

的按钮

无论舞台如何关闭,我都想在它关闭之前(或关闭时)执行一个 Action 。

如果我使用下面的代码:

myStage.setOnCloseRequest( event -> {System.out.println("Closing Stage");} );

然后处理程序在我单击 (X) 时被调用,但在我调用 myStage.close()

时不被调用

这与这个问题讨论的是同一个问题(有一个关键的区别): JavaFX: Stage close handler

不同的是他想在整个应用程序关闭时调用一个处理程序,因此可以覆盖Applicationstop()方法。但是我并没有关闭整个应用程序,只是一个阶段。并且 Stage 没有要覆盖的 stop() 方法。

感谢您的帮助。

最佳答案

感谢 VGR 的评论,我一直在寻找的解决方案真的很简单,只需将 setOnCloseRequest 替换为 setOnHiding:

myStage.setOnHiding( event -> {System.out.println("Closing Stage");} );

关于JavaFX Stage 关闭事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548460/

相关文章:

c# - 为什么 Process.Exited 事件会触发两次?

javascript - 使用哪个 jquery 事件?

java - 如何在 JavaFX 的场景上绘制渐变?

java - 防止 SplitPane 的一侧在 javafx 中调整大小

java - 如何向 Soap 服务发送数据?

java - ExecutorService - 调试和 Eclipse 中运行的不同输出

java - list.containsAll(emptylist) 怎么会返回 true?

Java - 使用按钮和鼠标单击创建自定义事件

java - PHP 如何处理三元组加密的 32 字节 key

tabs - JDK 1.8 JavaFX 选项卡 Pane 抛出 NullPointerException