2012-02-16 10 views
12

¿Cómo llegar al evento de cierre de la aplicación?Obtener el evento de cierre de la aplicación

Deseo obtener una aplicación para guardar todas las operaciones no guardadas o mostrarle al usuario un mensaje "¿Estás seguro de cerrar sin guardar todos los datos?" algo como esto.

Si esto es útil, la aplicación es SingleFrameAplication usando Swing.

Respuesta

18

Puede usar shutdown hook. Funciona para aplicaciones Swing, AWT e incluso consolas.

Ejemplo:

Runtime.getRuntime().addShutdownHook(new Thread() 
{ 
    @Override 
    public void run() 
    { 
     //do your stuff 
    } 
}); 
+4

tenga cuidado con los enlaces de roseindia. por favor, lea http://balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html Recomendaría http://docs.oracle.com/javase/7/docs/api/java /lang/Runtime.html#addShutdownHook(java.lang.Thread) como un enlace en su lugar – Sean

+1

@Sean, ¡gracias por la advertencia! He editado la respuesta con un enlace más legítimo. –

2

Hay que añadir WindowListener a su JFrame/JDialog, sobre el cierre de evento está ahí método público void windowClosing(WindowEvent e) { ejemplo de código here

0

Puede utilizar sun.misc.Signal o Runtime.getRuntime().addShutdownHook

More info

Cuestiones relacionadas