JavaFX Stage close event handler
Thanks to comments by VGR, the solution I was looking for really was as simple as replacing setOnCloseRequest
with setOnHiding
:
myStage.setOnHiding( event -> {System.out.println("Closing Stage");} );
skrilmps
Physicist, Martial Artist, Independent Video Game Developer
Updated on June 18, 2022Comments
-
skrilmps about 2 years
I have a Stage in JavaFX that can be closed in multiple ways, either by clicking the red (X) or by a Button which calls
stage.close()
Regardless of how the Stage is closed, I would like to perform an action before (or as) it is closed.
If I use the following code:
myStage.setOnCloseRequest( event -> {System.out.println("Closing Stage");} );
then the handler is called when I click the (X) but not when I call
myStage.close()
This is the same issue that this question talks about (with a key difference): JavaFX: Stage close handler
The difference is that he wants to call a handler as the entire application is closed, and therefore can override the
Application
'sstop()
method. However I'm not closing the entire application, just one stage. AndStage
does not have astop()
method to override.Thanks for any help.