JDialogをESCキーで閉じる

編集者:Terai Atsuhiro
作成日:2004-03-15
更新日:2021-09-19 (日) 10:55:00

概要

ESCキーを押すと閉じるJDialogを作成します。 大部分をJDialog says ESC key is already registered--where?から、そのまま引用しています。

サンプルコード

final JDialog dialog = new JDialog(frame, "タイトル", true);
AbstractAction act = new AbstractAction("了解") {
  public void actionPerformed(ActionEvent evt) {
    dialog.dispose();
  }
};
InputMap imap = dialog.getRootPane().getInputMap();
imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close-it");
dialog.getRootPane().getActionMap().put("close-it", act);

解説

JOptionPane.showMessageDialog() で作成したダイアログは、ESCキーを押すと閉じますが、JDialogの場合は閉じてくれません。そこでJDialogでもESCキーを押すと閉じるようにInputMapなどを使って設定します。

参考リンク

コメント