我编写了一个简单的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
答案 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 });
});
}
您以错误的方式使用了保护套。不需要括号,但必须添加中断语句。