我创建了一个对话框来接收用户的击键来更改菜单项的键绑定。我希望enter和escape成为用户可以绑定的键,但是它们都关闭了对话框。如何拦截这些按键呢?
编辑:使用JOptionPane和自定义组件创建对话框
GetKeyComponent comp = new GetKeyComponent(accels, menuItem);
Object[] array = { comp };
JOptionPane optionPane = new JOptionPane(array,
JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
2条答案
按热度按时间htrmnn0y1#
编辑:使用JOptionPane和自定义组件创建对话框
一个解决方案:不要这样做。创建您自己的模态JDialog,设置它的KeyBindings,然后使用它。例如,
axkjgtzd2#
作为单独类的@HovercraftFullOfEels代码(边距和按钮大小与标准Swing(又名“金属”)外观匹配):