【发布时间】:2012-11-16 09:01:52
【问题描述】:
我尝试了java.awt.event.MouseEvent 以及鼠标按钮和修饰键。最后我来到了一个点,我被它的行为弄糊涂了。
通常我使用SwingUtilities.isLeftMouseButton(...) 等来检测按下了哪个鼠标按钮,并使用<MouseEvent>.isControlDown() 等来检测按下了哪个修饰键。
但是如果我按下鼠标中键,<MouseEvent>.isAltDown()-方法似乎总是正确的,无论是否按下 Alt 键(鼠标右键和元键的方式相同)。
似乎键盘上的某些键与某些鼠标按钮共享相同的事件标志。 How to fetch the middle mouse button in java? 似乎证实了我的假设。
所以我的问题是:有没有办法检测按下了哪个鼠标按钮以及真正按下了哪些修饰符?还是只对条件鼠标事件使用 Ctrl 和 Shift 修饰键更好?
操作系统:Windows 8,java 版本“1.7.0_09”
提前谢谢你
【问题讨论】:
-
顺便说一下,Alt 键在 UNIX 系统上有一些特殊的行为,所以不应该在没有 Ctrl 或 Shift 作为修饰键的情况下使用它。
标签: java mouseevent modifier alt-key