如何在Java Swing中重新映射NumLock键?

时间:2011-06-16 01:07:33

标签: java swing keyboard-events num-lock

您可能已经阅读了我的earlier question关于将我的键盘重新映射到Java的低级别,我确实找到了解决方案。

说实话,我过分简化了我试图解决的问题。我不仅希望将NumericKeypad 1-3与7-9匹配,反之亦然,我想重新映射整个数字键盘。特别是,我需要重新映射NumLock键,它是键盘的一部分。这似乎是在系统级别截获的,我不能只是映射它以发出一些字符。

我想要的是,在运行我的应用程序时,NumLock键不会切换系统NumLock设置,而是发出一些其他键。

我是否超越了Java中可能存在的范围?或者是否有某些方法我可以深入到这个低级别并完成此任务。

2 个答案:

答案 0 :(得分:1)

我不确定这是您想要的,但您可以查看此game's关键事件编辑器,如screenshot所示,并在org.gcs.robot.RCKeys中实施。

答案 1 :(得分:1)

我提出的解决方案不适用于所有人,但它在我们的用例中实际上是最佳的:

使用Windows注册表进行键盘重映射。

它是永久性的,不需要JNI或设备驱动程序编写,在我们的例子中,我们不用担心会为其他应用程序弄乱键盘。非常简单。

如果您需要这样做并且能够摆脱这种黑客攻击,那么这是一种经济有效的解决方案。