Como detectar tecla Escape en JDialog y JForm
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
Suscribirse a:
Enviar comentarios
(
Atom
)
5 comentarios :
Rekordoba, una marravilla tu aporte, muchas gracias, saludos
muy bueno, recorrí un montón de páginas y nada, la tuya me solucionó el escape, gracias.
Excelente aporte.
Gracias.
Excelente amigo, me sirvió mucho.
Publicar un comentario