• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JDialogをESCキーで閉じる
#navi(../)
*JDialogをESCキーで閉じる [#v1b20b60]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-03-15~
更新日:&lastmod;

#contents

**概要 [#za1a28d9]
ESCキーを押すと閉じるJDialogを作成します。
大部分を[[JDialog says ESC key is already registered--where?>http://forum.java.sun.com/thread.jspa?threadID=468363]]から、そのまま引用しています。

#screenshot

**サンプルコード [#k02432cf]
#code{{
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);
}}
-&jnlp;
-&jar;
-&zip;

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

**参考リンク [#x13c393a]
-[[JDialog says ESC key is already registered--where?>http://forum.java.sun.com/thread.jspa?threadID=468363]]
-[[ESC Key to Close a JFrame>http://forum.java.sun.com/thread.jspa?threadID=449624]]

**コメント [#u5283c56]
#comment