JavaFX Stage关闭事件处理程序

skr*_*mps 3 java events javafx

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

无论舞台如何关闭,我都希望在舞台关闭之前(或之后)执行操作。

如果我使用以下代码:

myStage.setOnCloseRequest( event -> {System.out.println("Closing Stage");} );
Run Code Online (Sandbox Code Playgroud)

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

这是这个问题所讨论的相同问题(主要区别是): JavaFX:舞台关闭处理程序

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

谢谢你的帮助。

skr*_*mps 5

多亏了VGR意见,我一直在寻找真正的解决办法是简单如更换setOnCloseRequestsetOnHiding

myStage.setOnHiding( event -> {System.out.println("Closing Stage");} );
Run Code Online (Sandbox Code Playgroud)