按Esc键时,如何停止JDialog关闭。我希望保持原样。 我已经尝试过dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);但这不适用于Esc键
答案 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。