我在 JavaFX 中有一个可以通过多种方式关闭的舞台,通过单击红色 (X) 或通过调用 stage.close()
无论舞台如何关闭,我都想在它关闭之前(或关闭时)执行一个 Action 。
如果我使用下面的代码:
myStage.setOnCloseRequest( event -> {System.out.println("Closing Stage");} );
然后处理程序在我单击 (X) 时被调用,但在我调用 myStage.close()
这与这个问题讨论的是同一个问题(有一个关键的区别): JavaFX: Stage close handler
不同的是他想在整个应用程序关闭时调用一个处理程序,因此可以覆盖Application
的stop()
方法。但是我并没有关闭整个应用程序,只是一个阶段。并且 Stage
没有要覆盖的 stop()
方法。
感谢您的帮助。
最佳答案
感谢 VGR 的评论,我一直在寻找的解决方案真的很简单,只需将 setOnCloseRequest
替换为 setOnHiding
:
myStage.setOnHiding( event -> {System.out.println("Closing Stage");} );
关于JavaFX Stage 关闭事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548460/