【发布时间】:2020-07-20 03:07:33
【问题描述】:
在遇到 CTRL 掩码时,以下代码“在我看来”应该是这样,将其删除(然后将其取出),插入(或插入)ALT 掩码,然后进行具有 ALT 掩码的新击键并且没有 CTRL 掩码。事实上,我已经验证“修饰符”设置正确。
但是,当我传递一个带有 CTRL 掩码的击键时,我实际上从例程中得到的是一个同时包含两个掩码(CTRL 和 ALT)的击键。
我曾经直接返回方法结果,并尝试在“k2”的中间步骤中添加,当它似乎被覆盖时,但这并没有帮助。
想到出了什么问题?
public KeyStroke getKeyStoredToSystem (KeyStroke k) {
int modifiers = k.getModifiers();
if ((modifiers & InputEvent.CTRL_DOWN_MASK) != 0) {
modifiers &= ~InputEvent.CTRL_DOWN_MASK;
modifiers |= InputEvent.ALT_DOWN_MASK;
KeyStroke k2 = KeyStroke.getKeyStroke(k.getKeyCode(), modifiers);
return k2;
}
else {
return k;
}
}
【问题讨论】: