在你将此标记为重复问题之前,我必须澄清;其他有这个问题的人有基于Linux的系统;我正在使用Windows。
我的输入法中有这个,用于获取用户的输入,并将键码添加到数组列表中。问题是,当我按住键时,keyPressed()和keyReleased()只是被反复触发,而不是一次触发keyPressed(),并且一旦实际释放了键就触发了keyReleased()。有没有办法让这种情况发生,或某种形式的工作?
我正在使用的是什么:
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);
}
应该说明每个tick,keysReleased ArrayList都清除了所有数据。
由于