Событие мыши Java Щелкните правой кнопкой мыши


88

На моей трехкнопочной мыши MouseEvent.BUTTON2= средний щелчок и MouseEvent.BUTTON3= правый щелчок.

Это случай двухкнопочной мыши?

Благодарность

Ответы:


171

Чтобы избежать двусмысленности, используйте служебные методы из SwingUtilities :

SwingUtilities.isLeftMouseButton(MouseEvent anEvent) SwingUtilities.isRightMouseButton(MouseEvent anEvent) SwingUtilities.isMiddleMouseButton(MouseEvent anEvent)


10

Да, взгляните на эту ветку, в которой рассказывается о различиях между платформами.

Как определить событие щелчка правой кнопкой мыши в Mac OS

BUTTON3одинаково для всех платформ, равно как и правая кнопка мыши. BUTTON2 просто игнорируется, если средняя кнопка не существует.


1

я видел

anEvent.isPopupTrigger() 

использоваться раньше. Я новичок в Java, поэтому рад слышать мысли об этом подходе :)


7
да, но согласно bugs.java.com/bugdatabase/view_bug.do?bug_id=4119064 и моей собственной практике эта функция не будет работать правильно в Windows. И ошибка существует уже 16 лет ...
Gangnus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.