【问题标题】:addKeyListener not working as expectedaddKeyListener 没有按预期工作
【发布时间】:2012-01-07 01:23:35
【问题描述】:

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

我用 Jbutton 制作了 JFrameJPanel

我将JPanel 实例化为框架类中的面板,并将JButton 实例化为面板类中的按钮。我继续编辑面板的类。

如果我 addKeyListener 使用一个新的 keyAdapter 只打印“按下键”,那么如果我输入任何内容都不会发生任何事情。但是,如果我使用相同的通用keyAdapter 执行button.addKeyListener,则当我按下一个键时会打印“key press”。

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

当我添加一个键监听器时,代码会继续运行(可能应该如此),所以我尝试做while(some boolean) thread.sleep(1000),只是让键监听器在按下键时更改布尔值。我只是想让我的代码等到按下一个键。我知道这没什么好说的,但我的问题是:有没有更好或更简洁的方法来暂停方法/等待输入?

【问题讨论】:

    标签: java swing events instance keylistener


    【解决方案1】:

    如果我用一个新的 keyAdapter 添加KeyListener,它只打印“keypressed”,如果我输入任何东西,什么都不会发生。

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

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 2020-03-18
      • 2012-06-14
      • 2014-11-15
      • 1970-01-01
      • 2012-07-02
      • 2011-09-07
      • 2013-03-03
      • 2015-05-18
      相关资源
      最近更新 更多