Evitar que se Cierre una Aplicación Java / Swing


A veces es necesario evitar que el usuario cierre la aplicación mientras se está realizando un procesamiento o simplemente queremos que confirme que es verdaderamente si intención salir en ese momento


public class MyApp extends JFrame {
    public MyApp() {
        super("MyApp");
        this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                if(!model.isProcessing()){
                    setVisible(false);
                    dispose();
                }else{
                    JOptionPane.showMessageDialog(
                            MyApp.this, "Espere a que terminemos de procesar..."));
                }
            }
        });
    }
}

En el ejemplo  suponemos que hay una variable de instancia “model” que nos permite saber si la aplicación está en condiciones de ser cerrada o no.

El salir de la aplicación ocurre al hacer dispose() del último o único JFrame que está visible siempre y cuando estén dadas las demás condiciones para que la aplicación termine. Es importante asignar DO_NOTHING_ON_CLOSE como operación de cerrado por defecto para poder definir nosotros qué pasa cuando el usuario quiere cerrar.

2 pensamientos en “Evitar que se Cierre una Aplicación Java / Swing

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s