我现在正在努力向我的应用程序添加一些全局快捷键。
首先,我写了一个方法将原生修饰符代码翻译成swing的修饰符代码,添加了全局原生hook,但是没有用。然后,我添加了打印语句并遇到了意外的结果。
代码:
int m=KeyEvent.SHIFT_DOWN_MASK|KeyEvent.CTRL_DOWN_MASK|KeyEvent.ALT_DOWN_MASK;
System.out.println(m+" "+KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT,m).getModifiers());
输出:
704 715
。
所以...为什么?为什么修饰符 set 不是 getter 返回的内容? 我想,它应该会回来
704 704
。
不久前,旧修饰符
ALT_MASK
、CTRL_MASK
、META_MASK
和SHIFT_MASK
被新修饰符所取代:ALT_DOWN_MASK
、CTRL_DOWN_MASK
、META_DOWN_MASK
和SHIFT_DOWN_MASK
.KeyStroke.getKeyStroke(int, int)
会将相应的缺失修饰符添加到给定的修饰符中,因此 old 修饰符 或 new 修饰符 都可以使用。
AWTKeyStroke:771