Search code examples
javaawtmouseeventmouselistenerswingutilities

Right click mouse event


I search through this forum but I can't find a good explanation on this topic. Is there any different from the below statements? Which way is the better way to trigger this event?

if (evt.getButton() == 3) 

Vs.

if (SwingUtilities.isRightMouseButton(evt))

Solution

  • SwingUtilities.isRightMouseButton(evt)

    this uses a bit operand to compare:

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

    while other, just compare with a magic number that can change, I would rather change first comparison to:

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

    SwingUtilities is part of the javax which comes with jdk, so I would prefer to delegate that responsabillity to this utility (helper) class, so in that case, SwingUtilities wins.