Chiudere un JDialog con il tasto ESC
Uso spesso dei JDialog personalizzati, utili soprattutto per visualizzare alcune informazioni.
In questi casi mi rimane comodo chiuderli semplicemente con il tasto ESC.
In sostanza dobbiamo registrare una registerKeyboardAction, impostando il tasto ESC.
Questo un JDialog generico base:
public class GenericDialog extends JDialog {
public GenericDialog(JFrame parent, String title, String message) {
super(parent, title, true);
setLocationRelativeTo(parent);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setResizable(false);
setModal(true);
setPreferredSize(new Dimension(200, 120));
JPanel messagePane = new JPanel();
messagePane.add(new JLabel(message));
getContentPane().add(messagePane);
pack();
setLocationRelativeTo(null);
getRootPane().registerKeyboardAction(e -> {
dispose();
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
}
}
Provate a lanciarlo da un JFrame, e a premere il tasto ESC.
Enjoy!
java jdialog jframe registerkeyboardaction
Commentami!