所有类


java.awt.event
类 MouseEvent

java.lang.Object
  继承者 java.util.EventObject
      继承者 java.awt.AWTEvent
          继承者 java.awt.event.ComponentEvent
              继承者 java.awt.event.InputEvent
                  继承者 java.awt.event.MouseEvent
所有已实现的接口:
Serializable
直接已知子类:
MenuDragMouseEvent, MouseWheelEvent

public class MouseEvent
   
   
   
   
   
extends InputEvent

指示组件中发生鼠标动作的事件。当且仅当动作发生时,鼠标光标处于特定组件边界未被遮掩的部分之上时才认为在该组件上发生了鼠标动作。组件边界可以被可见组件的子组件、菜单或顶层窗口所遮掩。此事件既可用于鼠标事件(单击、进入、离开),又可用于鼠标移动事件(移动和拖动)。

通过组件对象可为下列活动生成此低级别的事件:

  • 鼠标事件
    • 按下鼠标按键
    • 释放鼠标按键
    • 单击鼠标按键(按下并释放)
    • 鼠标光标进入组件几何图形的未遮掩部分
    • 鼠标光标离开组件几何图形的未遮掩部分
  • 鼠标移动事件
    • 移动鼠标
    • 拖动鼠标

MouseEvent 对象被传递给每一个 MouseListenerMouseAdapter 对象,这些对象使用组件的 addMouseListener 方法注册,以接收“令人感兴趣”鼠标事件。(MouseAdapter 对象实现 MouseListener 接口。)所有此类侦听器对象都获得包含鼠标事件的 MouseEvent

MouseEvent 对象还传递给每一个使用组件的 addMouseMotionListener 方法注册接收鼠标移动事件的 MouseMotionListenerMouseMotionAdapter 方法。(MouseMotionAdapter 对象实现 MouseMotionListener 接口。)所有此类侦听器对象都获得包含鼠标移动事件的 MouseEvent

当单击鼠标按键时,生成事件并发送给已注册的 MouseListener。可以使用 InputEvent.getModifiers()InputEvent.getModifiersEx() 方法检索模式键的状态。InputEvent.getModifiers() 所返回的鼠标按键掩码只反映改变了状态的按键,而没有反映所有按键的当前状态。(注:由于 ALT_MASK/BUTTON2_MASK 和 META_MASK/BUTTON3_MASK 的值是重叠的,所以对于涉及组合键的鼠标事件并不总是正确的。要获得所有按键和组合键的状态,请使用 InputEvent.getModifiersEx()getButton() 返回改变了状态的鼠标按键。

例如,如果按下了第一个鼠标按键,则以下列顺序发送事件:

    id             修饰符       按键     
    MOUSE_PRESSED: BUTTON1_MASK BUTTON1
    MOUSE_RELEASED: BUTTON1_MASK BUTTON1
    MOUSE_CLICKED: BUTTON1_MASK BUTTON1
 
按下多个鼠标按键时,每次按下、释放和单击按钮都会导致出现一个独立的事件。

例如,如果用户按下按键 1 后按下按键 2,然后以相同的顺序释放这些键,则生成下列事件序列:

    id             修饰符       按键     
    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 BUTTON2
 
如果先释放按键 2,则先出现 BUTTON2_MASKMOUSE_RELEASED/MOUSE_CLICKED 对,后跟 BUTTON1_MASK 对。

在释放鼠标按键前,MOUSE_DRAGGED 事件被传递到在其中按下鼠标按键的 Component(而不管鼠标位置是否处于 Component 的边界内)。由于拖放实现是与平台相关的,所以在本机拖放操作期间可能不传递 MOUSE_DRAGGED 事件。在多屏幕环境中,即使鼠标位置在与 Component 关联的 GraphicsConfiguration 边界之外,也会将鼠标拖动事件传递给该 Component。但是在这种情况下所报告的鼠标拖动事件位置可能与实际的鼠标位置不同:

  • 在没有虚拟设备的多屏幕环境中:
    对报告的鼠标拖动事件坐标进行截取,使其处于与 Component 关联的 GraphicsConfiguration 边界内。
  • 在具有虚拟设备的多屏幕环境中:
    对报告的鼠标拖动事件坐标进行截取,使其处于与 Component 关联的虚拟设备的边界内。

从以下版本开始:
1.1
另请参见:
MouseAdapter, MouseListener, MouseMotionAdapter, MouseMotionListener, MouseWheelListener, Tutorial: Writing a Mouse Listener, Tutorial: Writing a Mouse Motion Listener, Reference: The Java Class Libraries (update file), 序列化表格

字段摘要
static intBUTTON1
          指示鼠标按键 #1;由 getButton() 使用。
static intBUTTON2
          指示鼠标按键 #2;由 getButton() 使用。
static intBUTTON3
          指示鼠标按键 #3;由 getButton() 使用。
static intMOUSE_CLICKED
          “鼠标单击”事件。
static intMOUSE_DRAGGED
          “鼠标拖动”事件。
static intMOUSE_ENTERED
          “鼠标进入”事件。
static intMOUSE_EXITED
          “鼠标离开”事件。
static intMOUSE_FIRST
          用于鼠标事件的 id 范围的起始编号。
static intMOUSE_LAST
          用于鼠标事件的 id 范围的结束编号。
static intMOUSE_MOVED
          “鼠标移动”事件。
static intMOUSE_PRESSED
          “鼠标按下”事件。
static intMOUSE_RELEASED
          “鼠标释放”事件。
static intMOUSE_WHEEL
          “鼠标滚轮”事件。
static intNOBUTTON
          指示没有鼠标按键,由 getButton() 使用。
 
从类 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
 
从类 java.awt.event.ComponentEvent 继承的字段
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
 
从类 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
 
从类 java.util.EventObject 继承的字段
source
 
构造方法摘要
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
          构造一个具有指定源组件、类型、修饰符、坐标和单击计数的 MouseEvent 对象。
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
          构造一个具有指定源组件、类型、修饰符、坐标和单击计数的 MouseEvent 对象。
 
方法摘要
 intgetButton()
          返回哪个鼠标按键更改了状态(如果有的话)。
 intgetClickCount()
          返回与此事件关联的鼠标单击次数。
static StringgetMouseModifiersText(int modifiers)
          返回一个描述事件期间所按下的组合键和鼠标按键(如“Shift”或“Ctrl+Shift”)的 String
 PointgetPoint()
          返回事件相对于源组件的 x、y 位置。
 intgetX()
          返回事件相对于源组件的水平 x 坐标。
 intgetY()
          返回事件相对于源组件的垂直 y 坐标。
 booleanisPopupTrigger()
          返回此鼠标事件是否为该平台的弹出菜单触发事件。
 StringparamString()
          返回标识此事件的参数字符串。
 voidtranslatePoint(int x, int y)
          将事件的坐标平移到新位置,方法是将其坐标加上指定的 x(水平)和 y(垂直)偏移量。
 
从类 java.awt.event.InputEvent 继承的方法
consume, getModifiers, getModifiersEx, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
 
从类 java.awt.event.ComponentEvent 继承的方法
getComponent
 
从类 java.awt.AWTEvent 继承的方法
getID, setSource, toString
 
从类 java.util.EventObject 继承的方法
getSource
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

MOUSE_FIRST

public static final int MOUSE_FIRST
用于鼠标事件的 id 范围的起始编号。

另请参见:
常量字段值

MOUSE_LAST

public static final int MOUSE_LAST
用于鼠标事件的 id 范围的结束编号。

另请参见:
常量字段值

MOUSE_CLICKED

public static final int MOUSE_CLICKED
“鼠标单击”事件。按下并释放鼠标按键时产生此 MouseEvent

另请参见:
常量字段值

MOUSE_PRESSED

public static final int MOUSE_PRESSED
“鼠标按下”事件。按下鼠标按键时产生此 MouseEvent

另请参见:
常量字段值

MOUSE_RELEASED

public static final int MOUSE_RELEASED
“鼠标释放”事件。松开鼠标按键时产生此 MouseEvent

另请参见:
常量字段值

MOUSE_MOVED

public static final int MOUSE_MOVED
“鼠标移动”事件。鼠标位置改变时产生此 MouseEvent

另请参见:
常量字段值

MOUSE_ENTERED

public static final int MOUSE_ENTERED
“鼠标进入”事件。鼠标光标进入组件几何图形的未遮掩部分时产生此 MouseEvent

另请参见:
常量字段值