首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyListener未被调用

KeyListener未被调用
EN

Stack Overflow用户
提问于 2013-11-07 00:11:07
回答 1查看 51关注 0票数 0

我有一个扩展GUI的JFrame类和一个单独的扩展KeyAdapter的内部类KeyPresses。在GUI的构造函数中,我将KeyAdapter的一个实例传递给addKeyListener()。据我所知,这是我所需要做的,但出于某种原因,当我按下一个键时,它并没有被调用。

适用代码:

代码语言:javascript
复制
public class GUI extends JFrame{
  public GUIMaze(Options options){
    addKeyListener(new KeyPresses());
    ...more code...
  }
  private class KeyPresses extends KeyAdapter{
     @Override
     public void keyPressed(KeyEvent e){
        ...code that is not being run...
     }
  }
}

奇怪的是,在我做一些重构之前,这段代码曾经工作过。要么我删除了我需要的东西,要么我正在做一些与KeyPresses冲突的事情。

我只有一个KeyListener,而我的MouseListener工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-07 00:13:07

这是KeyListener的一个常见问题。只有当附加到的组件具有可聚焦且具有键盘焦点时,KeyListener才会引发事件。

相反,建议您使用键绑定 API,它为您提供了一个控件,以确定应该在哪个焦点级别触发绑定。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19825547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档