Those of us with a two- or three-button mouse are familiar with the idea of a right-click, but how can you detect which button is pressed from your Java code? And to keep your applet or application platform independent, how can you cater for similar functionality with a one-button mouse? Fortunately, the InputEvent modifier flags serve double duty, so that clicking the right button or holding down the Alt key while clicking the left button, have the same effect. By masking the event modifiers in a mouseClicked method, you can permit the user to press Shift, Ctrl, Meta or Alt keys.
import java.awt.*;import java.awt.event.*;public class YourClass implements MouseListener { // Your constructors and methods here public void mouseClicked(MouseEvent ev) { int mask = InputEvent.BUTTON1_MASK - 1; int mods = ev.getModifiers() & mask; if (mods == 0) { // Left button clicked } else { // Right button clicked } }}
Note that this code does not distinguish between the right and center buttons on a three button mouse, but it could be extended to do so.