KeyListener触发错误的事件

时间:2019-05-04 23:25:44

标签: java keylistener keyevent

我编写了一个简单的KeyListener来识别Arrow_Left / Right事件。 由于某种原因,我的左键触发了1个VK_LEFT键并触发了1个VK_RIGHT事件(右箭头正常工作)

这是否一定是硬件/键盘问题(箭头键可以正常工作)还是有人知道如何解决此问题?

public void keyPressed(KeyEvent e) {
        switch(e.getKeyCode()) {
            case KeyEvent.VK_LEFT: {
                //left
                System.out.println("leftPressed");
                keyLeftPressed = true;
            }
            case KeyEvent.VK_RIGHT: {
                //right
                System.out.println("rightPressed");
                keyRightPressed = true;
            }
        }
    }

leftClick上的控制台输出为: leftPressed rightPressed

在右键单击上: rightPressed

2 个答案:

答案 0 :(得分:0)

您忘记了case语句上的break语句。如果您没有中断,将执行下一种情况。

public void keyPressed(KeyEvent e) {
        switch(e.getKeyCode()) {
            case KeyEvent.VK_LEFT: {
                //left
                System.out.println("leftPressed");
                keyLeftPressed = true;
                break;
            }
            case KeyEvent.VK_RIGHT: {
                //right
                System.out.println("rightPressed");
                keyRightPressed = true;
                break;
            }
        }
    }

答案 1 :(得分:0)

componentDidMount() {
    const { getData } = this.props;
    getData().then((data) => { // <-- Act on the promise result
      this.setState({ pdfData: data });
    });
}

您以错误的方式使用了保护套。不需要括号,但必须添加中断语句。