我在JavaFX中有一个可以通过多种方式关闭的舞台,可以通过单击红色(X)或通过调用stage.close()
无论舞台是如何关闭的,我都希望在关闭之前执行某个动作。
如果我使用以下代码:
myStage.setOnCloseRequest( event -> {System.out.println("Closing Stage");} );
然后在我点击(X)时调用处理程序,而不是在我调用myStage.close()
这个问题与此问题相同(有一个关键区别): JavaFX: Stage close handler
不同之处在于他希望在整个应用程序关闭时调用处理程序,因此可以覆盖Application
的{{1}}方法。但是,我没有关闭整个应用程序,只是一个阶段。并且stop()
没有要覆盖的Stage
方法。
感谢您的帮助。
答案 0 :(得分:4)
感谢VGR的评论,我正在寻找的解决方案就像用setOnCloseRequest
替换setOnHiding
一样简单:
myStage.setOnHiding( event -> {System.out.println("Closing Stage");} );