我制作了一个非常简单的程序来理解KeyListener的工作方式,但由于某些原因,当任何键被击中时,我的方法都没有被调用。如果有人能给我一些意见,我真的很感激。
import java.applet.*;
import java.awt.event.*;
public class ClassOne extends Applet implements KeyListener {
public void init(){
this.addKeyListener(this);
}
@Override
public void keyPressed(KeyEvent arg0) {
System.out.println("Pressed");
}
@Override
public void keyReleased(KeyEvent k) {
System.out.println("Released");
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
答案 0 :(得分:1)
KeyListener
s旨在向组件提供关键通知,只有当组件具有焦点且具有焦点时,才会向其注册。这意味着如果某个其他组件具有焦点(或者您的组件不可聚焦),它将不会响应键事件。
更好的解决方案是使用Key Bindings API,但这需要您使用JApplet
,这引发了问题,为什么您还在使用Applet
。 ..?
答案 1 :(得分:0)
我需要在init()中设置以下内容:
setFocusable(true);