KeyListener无法使用Applet

时间:2014-01-26 20:00:41

标签: java events applet keylistener

我有一个使用keylistener的applet,但是当我按下键时不会触发事件。 我还添加了setFocusable(true),但也没有用。

这是我的代码

http://pastebin.com/WnFVVps7

我正在创建一个新的KeyListener并将其添加到applet对象。 我也在我的init()方法上使用setFocusable(true)。

我不知道该怎么做,有人可以看看我的代码吗?感谢。

提前多多谢谢;)

4 个答案:

答案 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)并立即工作:)

感谢所有人的耐心;)