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

Я ищу по этому форуму, но не могу найти хорошего объяснения по этой теме. Есть ли отличия от приведенных ниже утверждений? Какой способ является лучшим способом вызвать это событие?

if (evt.getButton() == 3) 

Против

if (SwingUtilities.isRightMouseButton(evt))

1 ответ

Решение

SwingUtilities.isRightMouseButton(EVT)

это использует битовый операнд для сравнения:

(evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK)

в то время как другие, просто сравните с магическим числом, которое может измениться, я бы предпочел изменить первое сравнение на:

if(evt.getButton() == java.awt.event.MouseEvent.BUTTON3)

SwingUtilities является частью javax, который поставляется с jdk, поэтому я бы предпочел делегировать эту ответственность этому классу служебных (вспомогательных) функций, так что в этом случае SwingUtilities побеждает.

Другие вопросы по тегам