【发布时间】:2013-11-19 03:59:49
【问题描述】:
我正在尝试在 java 类中使用 KeyListener,但由于某些奇怪的原因它不接受输入。我最近遇到了这个问题,在它运行完美之前,但发生了一些变化,现在它不接受任何输入。这是我的代码的摘录:
public class SquarePanel extends JPanel implements Runnable, KeyListener, MouseListener
...
public SquarePanel {
this.setFocusable(true);
this.requestFocusInWindow();
addKeyListener(this);
然后我继续覆盖 keyPressed:
@Override
public void keyPressed(KeyEvent e)
{
System.out.println("SOMETHING");
}
然而什么也没发生。我是不是做错了什么?
(旁注:我认为我的程序没有获得焦点,这就是问题所在,因为当我使用 isFocusOwner() 时它出现错误。如果是这种情况,我该如何解决?)
【问题讨论】:
-
可能是因为你在构造函数中请求了焦点,这是在它实际添加到任何窗口之前。检查
requestFocusInWindow()的返回值是否成功。
标签: java keylistener