Как выбрать среднюю кнопку мыши в java?

#java #events #mouse

Вопрос:

Я использую public boolean mouseDown(Event ev, int x, int y) для обнаружения щелчка мыши.
Я могу различать правую кнопку мыши (например, metaDown() верно), левую и среднюю.

Как я могу отличить левую кнопку от средней? Или, если это невозможно с помощью mouseDown, что я должен использовать?

Комментарии:

1. О каком графическом интерфейсе мы говорим: SWT, Swing или (классический) AWT?

2. awt (это для получения 10 символов)

Ответ №1:

Попробуйте использовать ALT_MASK:

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

Таким образом, ваш код может быть:

 if (ev.modifiers amp; Event.ALT_MASK != 0) {
    // middle button was pressed
}
 

Конечно, все это предполагает, что у вас есть очень веская причина для использования mouseDown в первую очередь, так как он устарел. Вместо этого вам следует (вероятно) использовать processMouseEvent, что дает вам возможность поиграть с MouseEvent.

Ответ №2:

Наведение курсора мыши устарело. Все, что вам нужно, доступно с помощью кнопки MouseEvent.get. КНОПКА отслеживания 3.

Комментарии:

1. Что следует использовать вместо этого? ev.getButton() не существует, так как ev-это событие, а не событие мыши.

2. вы должны реализовать интерфейс MouseListener, посмотрите пример кода на этой странице: java.sun.com/docs/books/tutorial/uiswing/events/…

3. Это должна быть КНОПКА 2, а не КНОПКА 3. КНОПКА 3-это нужная кнопка.

4. КНОПКА 3-это средняя кнопка, java-tips.org/other-api-tips/jogl/…

Ответ №3:

Это может сделать это:

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/SwingUtilities.html#isMiddleMouseButton(java.awt.event.MouseEvent)

Сам я этого не пробовал.