Java 如何辨别按下了哪个SHIFT键?

Java 如何辨别按下了哪个SHIFT键?,java,keyboard,Java,Keyboard,在我的游戏中,我希望能够使用左右移动键实现不同的功能。在Java(或其他语言)中,有没有办法区分这两种语言 KeyEvent类只有VK_SHIFT,对应于左键和右键。与Control、Alt、Enter等相同 我主要担心的是,有人可能会用两个手指同时快速按下两个键,从而获得不公平的优势。我是否应该关心这个问题?我找到了一个Java教程,其中包括Java WebStart示例和源代码。看起来赢家是KeyEvent.getKeyLocation() KeyEvent.KEY\u位置\u标准 Key

在我的游戏中,我希望能够使用左右移动键实现不同的功能。在Java(或其他语言)中,有没有办法区分这两种语言

KeyEvent类只有VK_SHIFT,对应于左键和右键。与Control、Alt、Enter等相同


我主要担心的是,有人可能会用两个手指同时快速按下两个键,从而获得不公平的优势。我是否应该关心这个问题?

我找到了一个Java教程,其中包括Java WebStart示例和源代码。看起来赢家是KeyEvent.getKeyLocation()

  • KeyEvent.KEY\u位置\u标准
  • KeyEvent.KEY\u位置\u左侧
  • KeyEvent.KEY\u位置\u右侧
  • KeyEvent.KEY\u位置\u NUMPAD
  • KeyEvent.KEY\u位置\u未知
参考资料:

方法:

 int    getKeyLocation()
返回发起此密钥事件的密钥的位置

public static final int KEY_LOCATION_LEFT

A constant indicating that the key pressed or released is in the left key location (there is more than one possible location for this key). Example: the left shift key.

您还可以看看jinput,它是一个库,可以让您直接访问所有输入设备,从而提供更多的控制。如果您决定在游戏中使用LWJGL,它已经随jinput一起提供。

将shift键重新映射到j和k Nope,无需担心,完美无瑕的计划…如果该语言不提供此功能(如java所做),它将需要特定于操作系统的变形…请指定您正在使用的SDK/API。
public static final int KEY_LOCATION_LEFT

A constant indicating that the key pressed or released is in the left key location (there is more than one possible location for this key). Example: the left shift key.