JButtons考虑按空格键与点击JButton相同(假设JButton具有焦点,我在这里假设)。有没有办法关闭此行为,以便他们忽略按空格键?
另外,更一般地说,是否有使用AbstractButtons
?
答案 0 :(得分:3)
aioobe给出的链接显示了如何为单个按钮执行此操作。如果你想为所有JButton做这个,你会这样做:
InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
如果您想对复选框和单选按钮执行此操作,则需要对每个不同的输入映射重复上述操作。
您可能需要阅读Enter Key and Button。它实际上与您想要的相反,因为它解释了在使用Enter键时如何调用按钮。但它可能有助于解释为什么这个解决方案会反向运作。
答案 1 :(得分:1)
您可以通过执行
来禁用它jbutton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none");
这似乎也适用于其他AbstractButton
,例如JRadioButton
s。
当@camickr指出below时,您可以一次性解决所有JButton
的问题,如下所示:
InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
答案 2 :(得分:0)
键盘上的空格键可能会激活最后一个焦点元素。要使元素散焦,请尝试:
${element}.blur()
答案 3 :(得分:0)
使用:
inactive
这样,按钮只能用鼠标点击,不能用空格键。