禁用空格键触发单击JButton

Pau*_*ers 7 java swing jbutton

JButtons考虑按空格键与单击JButton相同(假设JButton具有焦点,我在这里假设).有没有办法关闭这种行为,所以他们忽略按空格键?

另外,更一般地说,是否有一种技术可以做到这一点AbstractButtons

aio*_*obe 3

您可以通过执行以下操作来禁用它

jbutton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none");
Run Code Online (Sandbox Code Playgroud)

这似乎也适用于其他AbstractButtons,例如JRadioButtons.

正如@camickr在下面指出的,您可以JButton一次性解决所有问题,如下所示:

InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
Run Code Online (Sandbox Code Playgroud)