java.lang.Object java.util.EventObject java.awt.AWTEvent java.awt.event.ComponentEvent java.awt.event.InputEvent java.awt.event.MouseEvent
public class MouseEvent
An event which indicates that a mouse action occurred in a component. A mouse action is considered to occur in a particular component if and only if the mouse cursor is over the unobscured part of the component's bounds when the action happens. Component bounds can be obscurred by the visible component's children or by a menu or by a top-level window. This event is used both for mouse events (click, enter, exit) and mouse motion events (moves and drags).
This low-level event is generated by a component object for:
A MouseEvent object is passed to every MouseListener or MouseAdapter object which is registered to receive the "interesting" mouse events using the component's addMouseListener method. (MouseAdapter objects implement the MouseListener interface.) Each such listener object gets a MouseEvent containing the mouse event.
A MouseEvent object is also passed to every MouseMotionListener or MouseMotionAdapter object which is registered to receive mouse motion events using the component's addMouseMotionListener method. (MouseMotionAdapter objects implement the MouseMotionListener interface.) Each such listener object gets a MouseEvent containing the mouse motion event.
When a mouse button is clicked, events are generated and sent to the registered MouseListeners. The state of modal keys can be retrieved using InputEvent.getModifiers() and InputEvent.getModifiersEx() . The button mask returned by InputEvent.getModifiers() reflects only the button that changed state, not the current state of all buttons. (Note: Due to overlap in the values of ALT_MASK/BUTTON2_MASK and META_MASK/BUTTON3_MASK, this is not always true for mouse events involving modifier keys). To get the state of all buttons and modifier keys, use InputEvent.getModifiersEx() . The button which has changed state is returned by getButton()
For example, if the first mouse button is pressed, events are sent in the following order:
id modifiers button MOUSE_PRESSED: BUTTON1_MASK BUTTON1 MOUSE_RELEASED: BUTTON1_MASK BUTTON1 MOUSE_CLICKED: BUTTON1_MASK BUTTON1When multiple mouse buttons are pressed, each press, release, and click results in a separate event.
For example, if the user presses button 1 followed by button 2 , and then releases them in the same order, the following sequence of events is generated:
id modifiers button MOUSE_PRESSED: BUTTON1_MASK BUTTON1 MOUSE_PRESSED: BUTTON2_MASK BUTTON2 MOUSE_RELEASED: BUTTON1_MASK BUTTON1 MOUSE_CLICKED: BUTTON1_MASK BUTTON1 MOUSE_RELEASED: BUTTON2_MASK BUTTON2 MOUSE_CLICKED: BUTTON2_MASK BUTTON2If button 2 is released first, the MOUSE_RELEASED/MOUSE_CLICKED pair for BUTTON2_MASK arrives first, followed by the pair for BUTTON1_MASK.
MOUSE_DRAGGED events are delivered to the Component in which the mouse button was pressed until the mouse button is released (regardless of whether the mouse position is within the bounds of the Component). Due to platform-dependent Drag&Drop implementations, MOUSE_DRAGGED events may not be delivered during a native Drag&Drop operation. In a multi-screen environment mouse drag events are delivered to the Component even if the mouse position is outside the bounds of the GraphicsConfiguration associated with that Component. However, the reported position for mouse drag events in this case may differ from the actual mouse position:
Field Summary | |
---|---|
static int |
BUTTON1
Indicates mouse button #1; used by getButton() . |
static int |
BUTTON2
Indicates mouse button #2; used by getButton() . |
static int |
BUTTON3
Indicates mouse button #3; used by getButton() . |
static int |
MOUSE_CLICKED
The "mouse clicked" event. |
static int |
MOUSE_DRAGGED
The "mouse dragged" event. |
static int |
MOUSE_ENTERED
The "mouse entered" event. |
static int |
MOUSE_EXITED
The "mouse exited" event. |
static int |
MOUSE_FIRST
The first number in the range of ids used for mouse events. |
static int |
MOUSE_LAST
The last number in the range of ids used for mouse events. |
static int |
MOUSE_MOVED
The "mouse moved" event. |
static int |
MOUSE_PRESSED
The "mouse pressed" event. |
static int |
MOUSE_RELEASED
The "mouse released" event. |
static int |
MOUSE_WHEEL
The "mouse wheel" event. |
static int |
NOBUTTON
Indicates no mouse buttons; used by getButton() . |
Fields inherited from class java.awt.event. InputEvent |
---|
ALT_DOWN_MASK , ALT_GRAPH_DOWN_MASK , ALT_GRAPH_MASK , ALT_MASK , BUTTON1_DOWN_MASK , BUTTON1_MASK , BUTTON2_DOWN_MASK , BUTTON2_MASK , BUTTON3_DOWN_MASK , BUTTON3_MASK , CTRL_DOWN_MASK , CTRL_MASK , META_DOWN_MASK , META_MASK , SHIFT_DOWN_MASK , SHIFT_MASK |
Fields inherited from class java.awt.event. ComponentEvent |
---|
COMPONENT_FIRST , COMPONENT_HIDDEN , COMPONENT_LAST , COMPONENT_MOVED , COMPONENT_RESIZED , COMPONENT_SHOWN |
Fields inherited from class java.awt. AWTEvent |
---|
ACTION_EVENT_MASK , ADJUSTMENT_EVENT_MASK , COMPONENT_EVENT_MASK , consumed , CONTAINER_EVENT_MASK , FOCUS_EVENT_MASK , HIERARCHY_BOUNDS_EVENT_MASK , HIERARCHY_EVENT_MASK , id , INPUT_METHOD_EVENT_MASK , INVOCATION_EVENT_MASK , ITEM_EVENT_MASK , KEY_EVENT_MASK , MOUSE_EVENT_MASK , MOUSE_MOTION_EVENT_MASK , MOUSE_WHEEL_EVENT_MASK , PAINT_EVENT_MASK , RESERVED_ID_MAX , TEXT_EVENT_MASK , WINDOW_EVENT_MASK , WINDOW_FOCUS_EVENT_MASK , WINDOW_STATE_EVENT_MASK |
Fields inherited from class java.util. EventObject |
---|
source |
Constructor Summary | |
---|---|
MouseEvent
(
Component
source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger) Constructs a MouseEvent object with the specified source component, type, modifiers, coordinates, and click count. |
|
MouseEvent
(
Component
source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button) Constructs a MouseEvent object with the specified source component, type, modifiers, coordinates, and click count. |
|
MouseEvent
(
Component
Constructs a MouseEvent object with the specified source component, type, modifiers, coordinates, absolute coordinates, and click count. |
Method Summary | |
---|---|
int |
getButton
() Returns which, if any, of the mouse buttons has changed state. |
int |
getClickCount
() Returns the number of mouse clicks associated with this event. |
Point |
getLocationOnScreen
()
Returns the absolute x, y position of the event. |
static String |
getMouseModifiersText
(int modifiers) Returns a String describing the modifier keys and mouse buttons that were down during the event, such as "Shift", or "Ctrl+Shift". |
Point |
getPoint
() Returns the x,y position of the event relative to the source component. |
int |
getX
() Returns the horizontal x position of the event relative to the source component. |
int |
getXOnScreen
()
Returns the absolute horizontal x position of the event. |
int |
getY
() Returns the vertical y position of the event relative to the source component. |
int |
getYOnScreen
()
Returns the absolute vertical y position of the event. |
boolean |
isPopupTrigger
() Returns whether or not this mouse event is the popup menu trigger event for the platform. |
String |
paramString
() Returns a parameter string identifying this event. |
void |
translatePoint
(int x, int y) Translates the event's coordinates to a new position by adding specified x (horizontal) and y (vertical) offsets. |
Methods inherited from class java.awt.event. InputEvent |
---|
consume , getModifiers , getModifiersEx , getModifiersExText , getWhen , isAltDown , isAltGraphDown , isConsumed , isControlDown , isMetaDown , isShiftDown |
Methods inherited from class java.awt.event. ComponentEvent |
---|
getComponent |
Methods inherited from class java.awt. AWTEvent |
---|
getID , setSource , toString |
Methods inherited from class java.util. EventObject |
---|
getSource |
Methods inherited from class java.lang. Object |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
Field Detail |
---|
public static final int MOUSE_FIRST
public static final int MOUSE_LAST
public static final int MOUSE_CLICKED
public static final int MOUSE_PRESSED
public static final int MOUSE_RELEASED
public static final int MOUSE_MOVED
public static final int MOUSE_ENTERED
public static final int MOUSE_EXITED
public static final int MOUSE_DRAGGED
public static final int MOUSE_WHEEL
public static final int NOBUTTON
public static final int BUTTON1
public static final int BUTTON2
public static final int BUTTON3
Constructor Detail |
---|
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
Note that passing in an invalid id results in unspecified behavior. Creating an invalid event (such as by using more than one of the old _MASKs, or modifier/button values which don't match) results in unspecified behavior. An invocation of the form MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger, button) behaves in exactly the same way as the invocation MouseEvent (source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, button) where xAbs and yAbs defines as source's location on screen plus relative coordinates x and y. xAbs and yAbs are set to zero if the source is not showing. This method throws an IllegalArgumentException if source is null.
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
Note that passing in an invalid id results in unspecified behavior. An invocation of the form MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger) behaves in exactly the same way as the invocation MouseEvent (source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, MouseEvent.NOBUTTON) where xAbs and yAbs defines as source's location on screen plus relative coordinates x and y. xAbs and yAbs are set to zero if the source is not showing. This method throws an IllegalArgumentException if source is null.
public MouseEvent ( Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)
Note that passing in an invalid id results in unspecified behavior. Creating an invalid event (such as by using more than one of the old _MASKs, or modifier/button values which don't match) results in unspecified behavior. Even if inconsistent values for relative and absolute coordinates are passed to the constructor, the mouse event instance is still created and no exception is thrown. This method throws an IllegalArgumentException if source is null.
Method Detail |
---|
public PointgetLocationOnScreen ()
public int getXOnScreen ()
public int getYOnScreen ()
public int getX()
public int getY()
public Point getPoint()
public void translatePoint(int x, int y)
public int getClickCount()
public int getButton()
public boolean isPopupTrigger()
Note : Popup menus are triggered differently on different systems. Therefore, isPopupTrigger should be checked in both mousePressed and mouseReleased for proper cross-platform functionality.
public static String getMouseModifiersText(int modifiers)
Note that InputEvent.ALT_MASK and InputEvent.BUTTON2_MASK have the same value, so the string "Alt" is returned for both modifiers. Likewise, InputEvent.META_MASK and InputEvent.BUTTON3_MASK have the same value, so the string "Meta" is returned for both modifiers.
public String paramString()