Tag: keylistener keyrelease

处理多次按键忽略重复键

我在另一个问题的评论部分询问了这个问题(> 我如何处理Java中的同时按键? ),并被要求完全提出一个新问题。 我的问题是,当我创建一个按键的ArrayList时,如果用户按下键,则不能通过keyReleased事件足够快地删除它们。 我希望运动与“asdf”以及北,东,南,西,东北……等。 这是我的两个事件的代码: @Override public void keyPressed(KeyEvent e) { if(chatTextField.isFocusOwner() == true){ //do nothing – don’t walk } else { logger.debug(“Key Pressed: ” + e.getKeyChar()); lastKey = keysPressed.get(keysPressed.size()-1); for (String key : keysPressed){ if (!key.contains(String.valueOf(e.getKeyChar())) && !lastKey.contains(String.valueOf(e.getKeyChar()))){ keysPressed.add(String.valueOf(e.getKeyChar())); System.out.println(“ADDED: ” + keysPressed); } } String keysList = keysPressed.toString(); if (keysList.contains(“w”)){ if (keysList.contains(“d”)){ […]