Я экспериментировал с java.awt.event.MouseEvent
и кнопками мыши и клавишами-модификаторами. Наконец я подошел к делу, где меня смутило его поведение.Определите, нажата ли средняя кнопка мыши, но не клавиша alt
Обычно я использую 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 имеет особый bevavior в UNIX-системах, поэтому его нельзя использовать без Ctrl или Shift в качестве ключа-модификатора. – FrecherxDachs