import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * Create a window and test keyboard and mouse events
 *   Any key typed event, and
 *   Any mouse click left/right buttons, mouse over, mouse out. 
 */

public class HandleMouse extends JFrame implements MouseListener {  

    JLabel area = new JLabel("Move and/or Press Mouse Buttons");

    public static void main(String[] args) {
        new HandleMouse();
    }

    public HandleMouse() {

        super("Mouse Trap");
        setSize(400, 300);
        setLocation(200,100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel pane = new JPanel();

        Color c = new Color(200,255,255);   //create an RGB color
        pane.setBackground(c);              //set the background color

        pane.add(area);

        setContentPane(pane);
        setVisible(true);

        addMouseListener(this);         //Register a mouse listener event
    }

//--------------------------------------------------------------------------------
//  Event handlers for mouse events 
//--------------------------------------------------------------------------------

    public void mouseEntered(MouseEvent evt) {      //on mouse over
        area.setText("Mouse Over");
    }

    public void mouseExited(MouseEvent evt) {       //on mouse out
        area.setText("Mouse Out");
    }

    public void mouseClicked(MouseEvent evt) {      //on mouse click    

        int button = evt.getModifiers();            //which button pressed?
        int xPos   = evt.getX();                    //at what x position?
        int yPos   = evt.getY();                    //at what y position?

        switch(button) 
        {
            case MouseEvent.BUTTON1_MASK:                  //16
             area.setText("Left Button: "   + button );  
                 break;
            case MouseEvent.BUTTON2_MASK:                  //8
                 area.setText("Middle Button: " + button ); 
                 break;
            case MouseEvent.BUTTON3_MASK:                  //4
                 area.setText("Right Button: "  + button ); 
        }

        area.setText(area.getText() + "  - at: " + xPos + "," + yPos);  
    }

    public void mousePressed(MouseEvent evt) {      //must be implemented 
        // do nothing
    }

    public void mouseReleased(MouseEvent evt) {     //must be implemented
        // do nothing
    }
}