// LeftRightMouse/LeftRightMouse.java

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class LeftRightMouse extends Applet {

    public void init() {
        addMouseListener(new MouseHandler());
    }

    public void paint(Graphics g) {
        Dimension d = getSize();
        g.drawRect(1, 1, d.width - 3, d.height - 3);
        g.drawRect(3, 3, d.width - 7, d.height - 7);
        g.drawString("Press a mouse button...", 25, 40);
        g.drawString(sMessage, 25, 70);
    }

    class MouseHandler extends MouseAdapter {

        public void mousePressed(MouseEvent e) {
            int nModifiers = e.getModifiers();
            switch (nModifiers & (InputEvent.BUTTON1_MASK 
                                | InputEvent.BUTTON2_MASK
                                | InputEvent.BUTTON3_MASK)) {
              case InputEvent.BUTTON1_MASK:
                sMessage = ++n + " - LEFT button pressed";
                repaint();
                break;
              case InputEvent.BUTTON2_MASK:
                sMessage = ++n + " - MIDDLE button pressed";
                repaint();
                break;
              case InputEvent.BUTTON3_MASK:
                sMessage = ++n + " - RIGHT button pressed";
                repaint();
                break;
            }
        }

        public void mouseReleased(MouseEvent e) {
            int nModifiers = e.getModifiers();
            switch (nModifiers & (InputEvent.BUTTON1_MASK 
                                | InputEvent.BUTTON2_MASK
                                | InputEvent.BUTTON3_MASK)) {
              case InputEvent.BUTTON1_MASK:
                sMessage = ++n + " - LEFT button released";
                repaint();
                break;
              case InputEvent.BUTTON2_MASK:
                sMessage = ++n + " - MIDDLE button released";
                repaint();
                break;
              case InputEvent.BUTTON3_MASK:
                sMessage = ++n + " - RIGHT button released";
                repaint();
                break;
            }
        }
    }
    
    private String sMessage = "";
    private int n = 0;
}    