按esc键时如何停止关闭JDialog

时间:2014-04-22 04:45:38

标签: java swing jdialog

按Esc键时,如何停止JDialog关闭。我希望保持原样。 我已经尝试过dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);但这不适用于Esc键

1 个答案:

答案 0 :(得分:2)

我不知道转义键会自动关闭对话框。至少它在Windows 7上使用JDK7并不起作用。

如果它适用于其他外观和感觉,那么我猜想LAF正在使用Key Bindings。

您可以尝试使用虚拟键绑定:

KeyStroke escapeKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
InputMap im = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
im.put(escapeKeyStroke, "do nothing");

如果这不起作用,请发布展示问题的SSCCE