Por favor, haz un clic sobre los anuncios cuando pases por mi blog, ya? =)

Como detectar tecla Escape en JDialog y JForm

5 comentarios
A diferencia de los cuadros de diálogo de Windows, los JDialog no se cierran si un presiona le tecla Escape ( los InputDialog y ShowConfirmationDialog son la excepción).

Para agregarle este rasgo a nuetros JDialog ( y , si queremos a algunos JFrame), podemos usar este código:


import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.KeyStroke;

/**
*
* @author Jason Matamala
*/
public class AuxDialog extends javax.swing.JDialog
{

/** Creates new form AuxDialog */
public AuxDialog (java.awt.Frame parent, boolean modal)
{
super (parent, modal);
addEscapeKey ();
initComponents ();
}
public AuxDialog (JDialog parent, boolean modal)
{
super (parent, modal);
addEscapeKey ();
initComponents ();
}
private void addEscapeKey ()
{
// Handle escape key to close the dialog

KeyStroke escape = KeyStroke.getKeyStroke (KeyEvent.VK_ESCAPE, 0, false);
Action escapeAction = new AbstractAction ()
{
public void actionPerformed (ActionEvent e)
{
dispose ();
}
};

getRootPane ().getInputMap (JComponent.WHEN_IN_FOCUSED_WINDOW).put (escape, "ESCAPE");
getRootPane ().getActionMap ().put ("ESCAPE", escapeAction);
}

//aqui se haria el empaquetamiento de la interface grafica....
private void initComponents()
{
//....
}
} //fin clase

5 comentarios :

Anónimo dijo...

Rekordoba, una marravilla tu aporte, muchas gracias, saludos

Anónimo dijo...

muy bueno, recorrí un montón de páginas y nada, la tuya me solucionó el escape, gracias.

Anónimo dijo...

Excelente aporte.
Gracias.

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Excelente amigo, me sirvió mucho.