Java为什么键侦听器不起作用?

时间:2018-09-21 14:34:02

标签: java

我不知道为什么这行不通。我已经阅读了很多帖子,并添加了setFocusable,但它根本无法正常工作。

public class Spiel {  
    public static void main(String[] args) {
        Playground pg = new Playground();
        pg.setLocation(0,0);
        pg.setSize(1000,1000);
        pg.setVisible(true);
        pg.setFocusable(true);
    }
}



import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;

public class Playground extends JFrame implements KeyListener {
    Playground(){

    }

    @Override
    public void keyTyped(KeyEvent e) {
        System.exit(0);

    }

    @Override
    public void keyPressed(KeyEvent e) {
        System.exit(0);

    }

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

    }
}

1 个答案:

答案 0 :(得分:1)

您仅实现了KeyListener,但是如果您希望它实际运行,则仍然需要将其注册到框架中。

Playground(){
    addKeyListener(this);  // should do the trick
}

否则,当您按下一个键时,您的框架将不知道它实际上必须监听并调用方法。