JButtons认为按下空格键与单击JButton相同(假设JButton具有焦点,这里我是这样假设的)。有没有办法关闭此行为,使它们忽略按下空格键?
另外,更普遍地说,是否有一种技术可以在AbstractButtons中实现这一点?
jbutton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none");
AbstractButton
,例如JRadioButton
。JButton
的问题:InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
aioobe提供的链接展示了如何为单个按钮执行此操作。如果您想为所有JButton执行此操作,则可以执行以下操作:
InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
在键盘按键抬起时按下空格键可能会激活最后聚焦的元素。若要取消元素的聚焦,请尝试以下操作:
${element}.blur()
使用:
button.setFocusable(false)
这样,按钮只能通过鼠标点击而不能使用空格键。