概要
Escキーを押すと閉じるJDialog
を作成します。Swing (Archive) - JDialog says ESC key is already registered--where?からの引用です。
Screenshot
Advertisement
サンプルコード
JDialog dialog = new JDialog(frame, "title", true);
AbstractAction act = new AbstractAction() {
@Override public void actionPerformed(ActionEvent e) {
dialog.dispose();
}
};
InputMap imap = dialog.getRootPane().getInputMap(
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close-it");
dialog.getRootPane().getActionMap().put("close-it", act);
View in GitHub: Java, Kotlin解説
JOptionPane.showMessageDialog()
メソッドなどで作成したダイアログ: Escキーを押すと閉じる- デフォルトの
JDialog
: Escキーを押しても閉じないJDialog
でEscキーを押すと閉じるには、JDialog
からInputMap
を取得してAction
を設定する必要がある
参考リンク
- Swing (Archive) - JDialog says ESC key is already registered--where?
- Swing (Archive) - ESC Key to Close a JFrame
- JComponentのKeyBinding一覧を取得する