JOptionPane按空格退出
时间: 2023-12-31 14:05:20 浏览: 129
JOptionPane.docx
在JOptionPane中,按下空格键默认会执行“确定”操作,这是因为JOptionPane会将默认按钮设置为“确定”按钮。如果您想将空格键设置为取消操作,可以通过以下代码实现:
```
JOptionPane optionPane = new JOptionPane("Message", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION, null, new Object[]{}, null);
optionPane.setWantsInput(true);
JDialog dialog = optionPane.createDialog("");
dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
InputMap inputMap = optionPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "none");
ActionMap actionMap = optionPane.getActionMap();
actionMap.put("none", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
dialog.setVisible(true);
```
在这个例子中,我们创建了一个JOptionPane,然后通过setInputMap()方法将空格键映射为“none”操作。然后,我们通过setActionMap()方法将“none”操作与关闭对话框的代码关联起来。这样,当用户按下空格键时,就会执行“none”操作,关闭对话框,达到了按下空格键退出的效果。
阅读全文