想问下,ALT_DOWN_MASK和ALT_MASK有什么区别,在应该方面
然后就是其getKeyModifierxText(int)有什么实际些的用途,
然后就是我怎么运用这个类判别按下的键是ctrl+shift一起按的
请教了!!!
怎么没人回哦,教教小弟啊!
一个是修饰符常量(ALT_MASK),一个是扩展修饰符常量(ALT_DOWN_MASK),现在推荐使用后者
getModifiersExText
返回描述扩展修改键和鼠标按钮(例如 "Shift"、"Button1" 或 "Ctrl+Shift")的 String。这些字符串的本地化可以通过修改 awt.properties 文件来完成。
getModifiersEx
public int getModifiersEx()返回此事件的扩展修饰符掩码。扩展修饰符表示所有模式键的状态,例如 ALT、CTRL、META 和事件发生后那一刻的鼠标按钮
例如,如果用户在按下 button 1 后又按下 button 2,然后以相同的顺序释放这两个按钮,则会生成以下事件序列:
MOUSE_PRESSED: BUTTON1_DOWN_MASK
MOUSE_PRESSED: BUTTON1_DOWN_MASK | BUTTON2_DOWN_MASK
MOUSE_RELEASED: BUTTON2_DOWN_MASK
MOUSE_CLICKED: BUTTON2_DOWN_MASK
MOUSE_RELEASED:
MOUSE_CLICKED:
建议不使用 == 来比较此方法的返回值,因为在以后会增加新的修饰符。例如,检查 SHIFT 和 BUTTON1 已经按下而 CTRL 未按下的正确方法可以通过以下代码来演示:
int onmask = SHIFT_DOWN_MASK | BUTTON1_DOWN_MASK;
int offmask = CTRL_DOWN_MASK;
if (event.getModifiersEx() & (onmask | offmask) == onmask) {
...
}
即使添加了新的修饰符,上述代码仍然有效。