How to close a JavaFX application on window close? How to close a JavaFX application on window close? java java

How to close a JavaFX application on window close?


The application automatically stops when the last Stage is closed. At this moment, the stop() method of your Application class is called, so you don't need an equivalent to setDefaultCloseOperation()

If you want to stop the application before that, you can call Platform.exit(), for example in your onCloseRequest call.

You can have all these information on the javadoc page of Application : http://docs.oracle.com/javafx/2/api/javafx/application/Application.html


Some of the provided answers did not work for me (javaw.exe still running after closing the window) or, eclipse showed an exception after the application was closed.

On the other hand, this works perfectly:

primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {    @Override    public void handle(WindowEvent t) {        Platform.exit();        System.exit(0);    }});


For reference, here is a minimal implementation using Java 8 :

@Overridepublic void start(Stage mainStage) throws Exception {    Scene scene = new Scene(new Region());    mainStage.setWidth(640);    mainStage.setHeight(480);    mainStage.setScene(scene);    //this makes all stages close and the app exit when the main stage is closed    mainStage.setOnCloseRequest(e -> Platform.exit());    //add real stuff to the scene...    //open secondary stages... etc...}