我有两个JPanel。在第一个中我有3个JButtons,第二个是根据从键盘读取的事件绘制图像。如果我用setEnabled(false);
设置JButtons,我可以像我期望的那样使用键盘事件(如果我向上按箭头,图像会向上移动),但是当按钮启用时,图像没有任何反应。甚至,如果我按空格键,它就像我点击按钮一样。
答案 0 :(得分:5)
问题不在于JButtons,而是因为您使用的是KeyListener。如果你能避免使用KeyListe并使用Key Bindings,那就不要将KeyListeners与Swing GUI一起使用。 KeyListeners仅在被侦听的组件具有焦点时才起作用,并且当您存在JButton时,它们将获得焦点并阻止您的KeyListener工作。密钥绑定,如果做得好,可以避免这个问题。
例如,请参阅我的代码示例here。