|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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
对象被传递给每一个 MouseListener
或 MouseAdapter
对象,这些对象使用组件的 addMouseListener
方法注册,以接收“令人感兴趣”鼠标事件。(MouseAdapter
对象实现 MouseListener
接口。)所有此类侦听器对象都获得包含鼠标事件的 MouseEvent
。
MouseEvent
对象还传递给每一个使用组件的 addMouseMotionListener
方法注册接收鼠标移动事件的 MouseMotionListener
或 MouseMotionAdapter
方法。(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 修饰符 按键如果先释放按键 2,则先出现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
BUTTON2_MASK
的 MOUSE_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 int |
BUTTON1 指示鼠标按键 #1;由 getButton() 使用。 |
static int |
BUTTON2 指示鼠标按键 #2;由 getButton() 使用。 |
static int |
BUTTON3 指示鼠标按键 #3;由 getButton() 使用。 |
static int |
MOUSE_CLICKED “鼠标单击”事件。 |
static int |
MOUSE_DRAGGED “鼠标拖动”事件。 |
static int |
MOUSE_ENTERED “鼠标进入”事件。 |
static int |
MOUSE_EXITED “鼠标离开”事件。 |
static int |
MOUSE_FIRST 用于鼠标事件的 id 范围的起始编号。 |
static int |
MOUSE_LAST 用于鼠标事件的 id 范围的结束编号。 |
static int |
MOUSE_MOVED “鼠标移动”事件。 |
static int |
MOUSE_PRESSED “鼠标按下”事件。 |
static int |
MOUSE_RELEASED “鼠标释放”事件。 |
static int |
MOUSE_WHEEL “鼠标滚轮”事件。 |
static int |
NOBUTTON 指示没有鼠标按键,由 getButton() 使用。 |
从类 java.awt.event.ComponentEvent 继承的字段 |
---|
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN |
从类 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 对象。 |
方法摘要 | |
---|---|
int |
getButton() 返回哪个鼠标按键更改了状态(如果有的话)。 |
int |
getClickCount() 返回与此事件关联的鼠标单击次数。 |
static String |
getMouseModifiersText(int modifiers) 返回一个描述事件期间所按下的组合键和鼠标按键(如“Shift”或“Ctrl+Shift”)的 String 。 |
Point |
getPoint() 返回事件相对于源组件的 x、y 位置。 |
int |
getX() 返回事件相对于源组件的水平 x 坐标。 |
int |
getY() 返回事件相对于源组件的垂直 y 坐标。 |
boolean |
isPopupTrigger() 返回此鼠标事件是否为该平台的弹出菜单触发事件。 |
String |
paramString() 返回标识此事件的参数字符串。 |
void |
translatePoint(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
。- 另请参见:
- 常量字段值