1

我正在尝试使用 jnativehook 编写我的第一个全局热键侦听器。修饰符部分似乎对初学者没有明确的描述,但我相信这对于熟悉的人来说是一个快速的回答。

我想测试是否NativeInputEvent.META_MASK在修饰符字段中。不知道该怎么做,我开始搜索一些关于图书馆的讨论。在这里,作者说它“与核心 Java 中的 AWT 修饰符的工作方式完全相同”(大多数新开发人员可能正在使用 swing 或 JavaFX,因此这对我们来说没有直接意义)。我搜索了 AWT 修饰符的解释,发现说“您可以通过将其常量与修饰符字段进行与运算来检查是否按下了任何修饰键”。

所以,我不知道究竟是如何按位和或按位或工作的。我查了一下,从这里开始按位表示并占用两位,如果两位都是 1,则返回 1。我不明白这如何适用于比较两个整数:NativeInputEvent.META_MASK以及事件的修饰符字段。

我错过了什么?

4

1 回答 1

0

您需要使用修饰符位掩码:

void nativeKeyTyped(NativeKeyEvent nativeEvent) {
    if (nativeEvent.getModifiers() & NativeInputEvent.META_MASK) {
        // META_MASK (left or right) was pressed.
    }
}
于 2022-02-18T01:36:26.973 回答