如何覆盖密钥重复 - KeyListener

时间:2015-12-06 02:35:27

标签: java keylistener

我有一个包含KeyListener的Graphics项目,其中箭头键和空格键控制着太空飞船的移动。但是,当按下一个键时,它会在第一个键之后的延迟后注册下一个键。我想要一个按下键来连续注册。

我怀疑这是因为我的电脑设置了重复按键延迟,所以有没有办法暂时在我的程序中覆盖它,或者为它解决这个问题?

$http.get('api/menuapi/' + menuid).success(function (data) {});

1 个答案:

答案 0 :(得分:0)

我建议使用按键和释放键

public class MyKeyListener implements KeyListener {
    //class gets the input from the player
    public void keyTyped(KeyEvent e) {
    }

    @Override
    public void keyPressed(KeyEvent e) {
        if(KeyEvent.getKeyText(e.getKeyCode()).equals("Left")) {
            //left arrow key
        } else if (KeyEvent.getKeyText(e.getKeyCode()).equals("Right")) {
            //right arrow key
        }
    }
    public void keyReleased(KeyEvent e) {
        if(KeyEvent.getKeyText(e.getKeyCode()).equals("Left"){
            //left key released
        }
        if(KeyEvent.getKeyText(e.getKeyCode()).equals("Right")) {
            //right key released
        }

    }
}

然后我在我的主构造函数

中使用了这段代码
    main() {
        KeyListener listener = new MyKeyListener();
        addKeyListener(listener);
        setFocusable(true);
} 

这样你按键时就不会有延迟。