Saltar al contenido

¿Cómo cerrar una aplicación JavaFX al cerrar la ventana?

Esta es la respuesta más correcta que encomtrarás dar, pero primero obsérvala detenidamente y analiza si es compatible a tu proyecto.

Solución:

La aplicación se detiene automáticamente cuando el último Stage está cerrado. En este momento, el stop() método de su Application clase se llama, por lo que no necesita un equivalente a setDefaultCloseOperation()

Si desea detener la aplicación antes de eso, puede llamar Platform.exit()por ejemplo en su onCloseRequest llamar.

Puedes tener toda esta información en la página javadoc de Application : http://docs.oracle.com/javafx/2/api/javafx/application/Application.html

Algunas de las respuestas proporcionadas no me funcionaron (javaw.exe aún se ejecuta después de cerrar la ventana) o Eclipse mostró una excepción después de que se cerró la aplicación.

Por otro lado, esto funciona perfectamente:

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

Como referencia, aquí hay una implementación mínima usando Java 8:

@Override
public 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...

Recuerda que puedes compartir esta división si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *