Foros del Web » Programación para mayores de 30 ;) » Java »

cerrar JFrame con tecla escape

Estas en el tema de cerrar JFrame con tecla escape en el foro de Java en Foros del Web. hola amigos mi pregunta es cmo puedo cerrar un JFrame al presionar la tecla escape. simple como eso gracias de antemano....
  #1 (permalink)  
Antiguo 30/01/2012, 20:09
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
cerrar JFrame con tecla escape

hola amigos mi pregunta es cmo puedo cerrar un JFrame al presionar la tecla escape. simple como eso gracias de antemano.
  #2 (permalink)  
Antiguo 30/01/2012, 23:42
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: cerrar JFrame con tecla escape

Código Java:
Ver original
  1. public class VistaPrincipal extends javax.swing.JFrame {
  2.  
  3.     private VistaPrincipal() {
  4.         getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(
  5.             javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0), "Cancel");
  6.        
  7.         getRootPane().getActionMap().put("Cancel", new javax.swing.AbstractAction(){
  8.             @Override
  9.             public void actionPerformed(java.awt.event.ActionEvent e)
  10.             {
  11.                 close();
  12.             }
  13.         });
  14.        
  15.         setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
  16.         addWindowListener(new java.awt.event.WindowAdapter() {
  17.             @Override
  18.             public void windowClosing(java.awt.event.WindowEvent evt) {
  19.                 close();
  20.             }
  21.         });
  22.     }
  23.  
  24.     private void close(){
  25.         java.awt.Toolkit.getDefaultToolkit().beep();
  26.         if (JOptionPane.showConfirmDialog(rootPane, "¿Desea realmente salir de la aplicación?",
  27.                 "Sistema", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
  28.             logger.log(Level.INFO, "Salida del sistema.");
  29.             System.exit(0);
  30.         }
  31.     }
  32. }

Con ese código, cada vez que presiones la tecla escape te aparecerá una ventana de confirmación preguntándote si deseas realmente salir de la aplicación. Si no deseas dicha ventana de confirmación, pues elimina las filas correspondientes (están dentro del método close() como ya te habrás dado cuenta, y deja sólo lo de System.exit(0) y listo.)

Salu2.

Última edición por farfamorA; 30/01/2012 a las 23:43 Razón: Ortografía

Etiquetas: cerrar, escape, jframe, tecla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:45.