Java 按住键[WINDOWS]时,KeyPressed()/KeyReleased()会重复激发
在你把这个问题标记为重复问题之前,我必须澄清;其他有这个问题的人有基于Linux的系统;我正在使用Windows 在我的输入法中有这样的代码,用于从用户处获取输入,并将关键代码添加到数组列表中。问题是,当我按住键时,keyPressed()和keyReleased()只是重复触发,而不是keyPressed()触发一次,keyReleased()在键实际释放后触发。有什么办法可以实现这一点,或者有什么办法可以解决 我使用的是:Java 按住键[WINDOWS]时,KeyPressed()/KeyReleased()会重复激发,java,keylistener,Java,Keylistener,在你把这个问题标记为重复问题之前,我必须澄清;其他有这个问题的人有基于Linux的系统;我正在使用Windows 在我的输入法中有这样的代码,用于从用户处获取输入,并将关键代码添加到数组列表中。问题是,当我按住键时,keyPressed()和keyReleased()只是重复触发,而不是keyPressed()触发一次,keyReleased()在键实际释放后触发。有什么办法可以实现这一点,或者有什么办法可以解决 我使用的是: public void keyPressed(KeyEvent e)
public void keyPressed(KeyEvent e) {
System.out.println("Fired Press");
if (!keysPressed.contains(e.getKeyCode()))
keysPressed.add(e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
System.out.println("Fired Release");
keysReleased.add(e.getKeyCode());
for (int i = 0; i < keysPressed.size(); i++)
if (keysReleased.contains(keysPressed.get(i)))
keysPressed.remove(i);
}
按下公共无效键(按键事件e){
System.out.println(“点火印刷机”);
如果(!keysPressed.contains(例如getKeyCode()))
添加(例如getKeyCode());
}
公共无效密钥已释放(密钥事件e){
System.out.println(“点火释放”);
添加(例如getKeyCode());
对于(int i=0;i谢谢请考虑提供一个演示您的问题的示例,这将减少猜测工作并生成更好的响应。请参阅我的代码。只需将它添加到KeyListener(以及ArrayList),它就可以正常工作。