Java 键盘听者在JApplet中不点火

Java 键盘听者在JApplet中不点火,java,swing,japplet,Java,Swing,Japplet,当我键入、按下或释放一个键时,不会发生任何事情。我正在尝试使用此关键字添加keylistener。当我添加鼠标侦听器时,它工作得很好 class MainApplet extends JApplet implements KeyListener{ MainApplet(){ addKeyListener(this) } public void init(){} public void start(){} public void keyTyped(KeyEvent e) { //

当我键入、按下或释放一个键时,不会发生任何事情。我正在尝试使用此关键字添加keylistener。当我添加鼠标侦听器时,它工作得很好

class MainApplet extends JApplet implements KeyListener{

MainApplet(){ addKeyListener(this) }

public void init(){}

public void start(){}

public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub
    System.out.print(e);

}
public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub

}
public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub

}

}

KeyEvents仅为具有焦点的组件生成。小程序上没有组件具有焦点,因此没有组件可以接收KeyEvents

尝试以下方法:

Component contentPane = getContentPane();
contentPane.setFocusable(true);
contentPane.addKeyListener( this );

真正的问题是你想做什么?当我们知道真正的需求时,我们可能会提出更好的解决方案。通常,您将使用来侦听给定组件上的击键。

KeyEvents仅为具有焦点的组件生成。小程序上没有组件具有焦点,因此没有组件可以接收KeyEvents

尝试以下方法:

Component contentPane = getContentPane();
contentPane.setFocusable(true);
contentPane.addKeyListener( this );

真正的问题是你想做什么?当我们知道真正的需求时,我们可能会提出更好的解决方案。通常情况下,您会在给定组件上侦听击键。

我知道键绑定即将到来,所以我现在只给您+1;)@MadProgrammer,我们变得太可预测了:)我知道密钥绑定即将到来,所以我现在就给你+1;)@疯狂的程序员,我们变得太可预测了:)