我正在使用键事件而不是键绑定,因为我还不了解键绑定。
我使用带有Jbutton的JFrame
制作JPanel
。
我将JPanel
作为框架类中的面板和面板类中的JButton
按钮实例化。我继续编辑小组的课程。
如果我addKeyListener
使用新的keyAdapter
打印“按下了键”,如果我输入任何内容,则没有任何反应。但是,如果我使用相同的通用button.addKeyListener
进行keyAdapter
,则在按下某个键时会按下“按下键”。
我认为这与实例有关。所以我的第一个问题是:如何让一个组件为自己添加一个关键的监听器和/或为什么不调用addKeyListener
甚至this.addKeyListener
来做这个?
当我添加一个键监听器时,代码继续运行(因为它可能应该这样)所以我尝试执行while(some boolean) thread.sleep(1000)
只需让键监听器在按下键时更改布尔值。我只是希望我的代码等到按下一个键。我知道这不是很多,但我的问题是:是否有更好或更简洁的方法来暂停方法/等待输入?
答案 0 :(得分:2)
如果我使用刚刚打印“按下键”的新keyAdapter添加KeyListener,那么如果我输入任何内容,则没有任何反应。
可能是因为该组件没有焦点。 KeyEvents仅调度到具有焦点的组件。这不是Key Bindings的问题,因为即使组件没有焦点,它们也可以处理事件。