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's stop() method. However I'm not closing the entire application, just one stage. And Stage does not have a stop() method to override.
Thanks for any help.
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");} );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With