我希望这个问题还没有被问过,但我一直在寻找解决问题的方法,但我没有找到对我有用的东西。
我正在编写一个Java应用程序,用户可以通过他的键盘控制应用程序。问题是,我需要许多不同的输入键。所以我还必须使用特殊的char键。但我的问题是,我无法再为每个键盘编写整个代码。
所以我的问题是,有没有办法确定键盘上给定键的位置。如果有人知道如何做到这一点会非常好。
提前致谢, 利奥
答案 0 :(得分:2)
键盘仅将键码发送到底层堆栈。由OS和软件决定如何使用它。现在也许硬件确实有一个依赖于位置的简单代码,并且正在进行一些翻译以将其转换为应用程序的可用密钥代码。我认为必须是这种情况,因为布局可以从OS中选择。但是,这似乎不是你在Java中可以访问的那种低级别的东西,而不是使用JNI。
源自KeyListener,您可以捕获KeyEvents。我建议您查看该类的文档,字段和方法,并可能制作一个小型测试应用程序来捕获此类事件并打印出各种方法的结果。也许你可以找到一些共同点。
如果没有直接这样做的方法,也许最好有一些转换表方案,标准化最常见布局的输入,如Qwerty和Azerty。这应该适用于大多数用户,因为你希望依靠绝对定位,需要一小部分布局中的一个看起来似乎是不可接受的。用户可以在操作系统中更改布局。
如果您正在制作游戏,可以创建some huge control deck that people will be forced to buy to get the best experience。多余的钱! :d
答案 1 :(得分:1)
您可以完全按用户定义设置
您可以进行一些用户可以修改的设置,将键映射到操作,为azerty设置标准设置,将qwerty设置为默认设置