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

标签 java swing keyboard-events num-lock

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

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

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

我是否超出了 Java 所能实现的范围?或者有什么方法可以让我深入到这个低水平并完成这个任务。

最佳答案

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

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

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

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

关于java - 如何在 Java Swing 中重新映射 NumLock 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366095/

相关文章:

keyboard - 如何从 Apple 键盘发送 Windows Media 键

python - 为什么我的按键 Action 不能正常工作?

java - 模式访问者 : Abstract class needs a function

java - 在 android 的 AsyncTask 中创建额外的线程并使用 ExecutorService 更新 UI,我做错了吗?

java - 如何设置JTable的UIManager固定行高?

Java KeyBind-判断按键释放事件

java - 在java中得到AT COMMAND的意外结果

java - 将 JTextField 中的内容保存到数组中

java - 如何防止定时器锁定我的小程序?

swing - openjdk 8 : error - No public or protected classes found to document