TITLE:JDialogをESCキーで閉じる

Posted by terai at 2004-03-15

JDialogをESCキーで閉じる

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

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

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などを使って設定します。

参考リンク

コメント