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