gpt4 book ai didi

java - 如何在按下按键时锁定 KeyListener

转载 作者:行者123 更新时间:2023-12-01 14:27:07 24 4
gpt4 key购买 nike

我将以下 KeyListener 添加到我的按钮中,并注意到如果我按住任何键,它就会开始连续触发,就像我快速按下并释放它一样。我从未释放过 key ,但“a:已释放”消息仍然打印在我的控制台中。为什么释放监听器被触发以及如何停止重复按键?我只想要一个“a:按下”只要我按住按键,然后当我松开按键时一个“a:释放”。

button.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar() + ": pressed");
}

@Override
public void keyReleased(KeyEvent e) {
System.out.println(e.getKeyChar() + ": released");
}
});

是否有办法使这些方法像同步方法一样工作,即使(我假设)没有为重复事件创建新线程。

最佳答案

您可以使用附加字段来指示按钮已按下:

button.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}

private boolean pressed = false;

@Override
public void keyPressed(KeyEvent e) {
if (!pressed) {
System.out.println(e.getKeyChar() + ": pressed");
pressed = true;
}
}

@Override
public void keyReleased(KeyEvent e) {
pressed = false;
System.out.println(e.getKeyChar() + ": released");
}
});

关于java - 如何在按下按键时锁定 KeyListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123713/

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