# Java: MouseListener

This type of mouse listener is for events which typically don't happen very often -- a mouse button is pressed, released, or the mouse enters or leaves the area of the component with a listener. Here are the actions that a MouseListener catches.

press | one of the mouse buttons is pressed.
release | one of the mouse buttons is released.
click | a mouse button was pressed and released without moving the mouse. This is perhaps the most commonly used.
enter | mouse cursor enters the component. Often used to change cursor.
exit | mouse cursor exits the component. Often used to restore cursor.

To listen for these events you will use addMouseListener.

## MouseListener Interface

To implement a MouseListener interface, you must define the following methods. You can copy these definitions into your program and only make a meaningful body for those methods that are of interest.

    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    public void mouseClicked(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}

This method is called | When the user does this action
`mouseClicked` | A click is the result of a press and a release. This is probably the most common method to write.
`mousePressed` | A mouse button is pressed (any of three possible mouse buttons)
`mouseReleased` | A mouse button is released.
`mouseEntered` | The mouse cursor enters a component. You might write this to change the cursor.
`mouseExited` | The mouse cursor leaves a component. You might write this to restore the cursor.

## To Get the Mouse Coordinates

All coordinates are relative to the upper left corner of the component with the mouse listener. Use the following MouseEvent methods to get x and y coordinates of where the mouse event occurred.

- `int getX() // returns the x coordinate of the event.`
- `int getY() // returns the y coordinate of the event.`

## To Check for Double Clicks

Use the following MouseEvent method to get a count of the number of clicks.

- `int getClickCount() // number of mouse clicks`