KeyListener方法未被调用

时间:2014-02-27 20:33:19

标签: java applet keylistener

我制作了一个非常简单的程序来理解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

    }

}

2 个答案:

答案 0 :(得分:1)

KeyListener s旨在向组件提供关键通知,只有当组件具有焦点且具有焦点时,才会向其注册。这意味着如果某个其他组件具有焦点(或者您的组件不可聚焦),它将不会响应键事件。

更好的解决方案是使用Key Bindings API,但这需要您使用JApplet,这引发了问题,为什么您还在使用Applet。 ..?

答案 1 :(得分:0)

我需要在init()中设置以下内容:

setFocusable(true);