我有两个JPanels。在第一个中,我有3个JButton,第二个是根据从键盘读取的事件绘制图像。如果使用setEnabled(false);设置JButton,则可以按预期使用键盘事件(如果按向上箭头,则图像会向上移动),但是启用按钮后,图像将不会发生任何事情。即使按空格键,其行为也与单击按钮的行为类似。

最佳答案

问题不在于JButton,而是可能是因为您使用的是KeyListener。如果可以避免,请不要将KeyListener与Swing GUI一起使用,而应使用键绑定。仅当正在侦听的组件具有焦点时,KeyListener才起作用,并且当存在JButton时,它们将占据焦点并阻止KeyListener起作用。如果操作正确,键绑定可以避免此问题。

例如,请参见我的代码示例here

关于java - 禁用JButton从键盘读取事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11945221/

10-11 22:25