addKeyListener未按预期工作

时间:2011-11-26 20:25:45

标签: java swing events instance keylistener

我正在使用键事件而不是键绑定,因为我还不了解键绑定。

我使用带有Jbutton的JFrame制作JPanel

我将JPanel作为框架类中的面板和面板类中的JButton按钮实例化。我继续编辑小组的课程。

如果我addKeyListener使用新的keyAdapter打印“按下了键”,如果我输入任何内容,则没有任何反应。但是,如果我使用相同的通用button.addKeyListener进行keyAdapter,则在按下某个键时会按下“按下键”。

我认为这与实例有关。所以我的第一个问题是:如何让一个组件为自己添加一个关键的监听器和/或为什么不调用addKeyListener甚至this.addKeyListener来做这个?

当我添加一个键监听器时,代码继续运行(因为它可能应该这样)所以我尝试执行while(some boolean) thread.sleep(1000)只需让键监听器在按下键时更改布尔值。我只是希望我的代码等到按下一个键。我知道这不是很多,但我的问题是:是否有更好或更简洁的方法来暂停方法/等待输入?

1 个答案:

答案 0 :(得分:2)

  

如果我使用刚刚打印“按下键”的新keyAdapter添加KeyListener,那么如果我输入任何内容,则没有任何反应。

可能是因为该组件没有焦点。 KeyEvents仅调度到具有焦点的组件。这不是Key Bindings的问题,因为即使组件没有焦点,它们也可以处理事件。