我有一个使用keylistener的applet,但是当我按下键时不会触发事件。 我还添加了setFocusable(true),但也没有用。
这是我的代码
我正在创建一个新的KeyListener并将其添加到applet对象。 我也在我的init()方法上使用setFocusable(true)。
我不知道该怎么做,有人可以看看我的代码吗?感谢。
提前多多谢谢;)
答案 0 :(得分:3)
这是KeyListener
的常见问题。
问题是,KeyListener
只会在注册的组件可对焦且具有键盘焦点时才响应击键。这通常使得它不适合一般使用,它实际上是一个专门的倾听者。
相反,你应该使用Key Bindings API,它允许你控制将在
触发击键的焦点水平答案 1 :(得分:2)
如果要捕获应用程序的全局键事件而不仅仅是组件,请使用KeyEventPostProcessor
。这应该谨慎使用。
答案 2 :(得分:1)
我还没有尝试过,但问题可能是您声明了一个类KeyListener,并且还通过该名称导入了另一个类。尝试将KeyListener类重命名为不太通用的类。
另外:你确定KeyListener类应该实现KeyAdapter而不是java.awt.event.KeyListener吗?
KeyListener.keyReleased()和.keyTyped()是否有效?
答案 3 :(得分:1)
在其中有一段时间(真实)有线程睡眠。因此没有触发击键,我改变了代码以在新线程中启动while(true)并立即工作:)
感谢所有人的耐心;)