Chiudere un JDialog con il tasto ESC

Mattepuffo's logo
Chiudere un JDialog con il tasto ESC

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!


Condividi

Commentami!