gpt4 book ai didi

Java KeyListener.keyPressed 在按住键时多次触发

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:47 24 4
gpt4 key购买 nike

当使用 keyListener 时,如何使每次用户按下左键时 count 的值只增加 1,而不是根据您按住左键的时间增加?

public void keyPressed (KeyEvent e){
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT){
keyLabel.setText("left");
count++;}

最佳答案

考虑这个 KeyListener 的例子,它只会计算每次按下 VK_LEFT 一次 - 即使按键被按下并触发多次。

label.addKeyListener(new KeyAdapter() {

boolean pressed = false;
@Override
public void keyPressed (KeyEvent e){
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT && !pressed){
pressed = true;
keyLabel.setText("left");
System.out.println("Pressed: " + (++count));
}
}
@Override
public void keyReleased (KeyEvent e){
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT){
pressed = false;
System.out.println("Released.");
}
}
});

虽然 keyPressed 似乎在按键被按下时被重复调用,但 keyReleased 只会在按键被释放时触发,所以我们在那个时候切换一个 boolean 开关 pressed

关于Java KeyListener.keyPressed 在按住键时多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34126166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com