public class MouseEvent extends InputEvent
EventListener到组件(
MouseListener或
MouseMotionListener),或通过调用
Component.enableEvents(long)与适当的掩模参数(
AWTEvent.MOUSE_EVENT_MASK或
AWTEvent.MOUSE_MOTION_EVENT_MASK)。如果组件未在组件上启用鼠标事件类型,则将相应的鼠标事件发送给已启用鼠标事件类型的第一个祖先。
例如,如果一个MouseListener已被添加到组件,或enableEvents(AWTEvent.MOUSE_EVENT_MASK)已被调用,然后所有的事件定义的MouseListener派遣到组件。另一方面,如果一个MouseMotionListener尚未添加和enableEvents尚未调用AWTEvent.MOUSE_MOTION_EVENT_MASK,然后鼠标移动事件不会被派到组件。相反,鼠标的运动事件被发送到已启用鼠标运动事件的第一个祖先。
这个低级的事件是由一个组件对象产生的:
一个MouseEvent对象传递给每一MouseListener或MouseAdapter对象是注册接收使用组件的addMouseListener方法“有趣”的鼠标事件。(MouseAdapter对象实现了MouseListener接口。)每个听众对象获取一个MouseEvent包含鼠标事件。
一个MouseEvent对象也传递给每一MouseMotionListener或MouseMotionAdapter对象注册到使用组件的addMouseMotionListener方法接收鼠标移动事件。(MouseMotionAdapter对象实现了MouseMotionListener接口。)每个听众对象获取一个MouseEvent包含鼠标移动事件。
当鼠标按钮被单击时,生成事件,并发送到注册MouseListeners。模态按键的状态可以用InputEvent.getModifiers()和InputEvent.getModifiersEx()检索。返回InputEvent.getModifiers()按钮面具只反映按钮改变状态,不是所有的按钮的当前状态。(注:由于在alt_mask / button2_mask和meta_mask / button3_mask值重叠,这不总是正确的鼠标事件涉及修改键)。把所有的按钮和修饰键,国家InputEvent.getModifiersEx()。按钮改变了返回的状态是getButton()
例如,如果第一个鼠标按钮被按下,事件将被发送到下面的顺序:
身份证件 改性剂 按钮当多个鼠标按钮被按下,每个新闻,发布,并在一个单独的点击事件的结果。MOUSE_PRESSED:BUTTON1_MASKBUTTON1MOUSE_RELEASED:BUTTON1_MASKBUTTON1MOUSE_CLICKED:BUTTON1_MASKBUTTON1
例如,如果用户按按钮1随后按钮2,然后释放他们以相同的顺序,产生了以下的事件序列:
身份证件 改性剂 按钮如果 按钮2首次发布,为MOUSE_PRESSED:BUTTON1_MASKBUTTON1MOUSE_PRESSED:BUTTON2_MASKBUTTON2MOUSE_RELEASED:BUTTON1_MASKBUTTON1MOUSE_CLICKED:BUTTON1_MASKBUTTON1MOUSE_RELEASED:BUTTON2_MASKBUTTON2MOUSE_CLICKED:BUTTON2_MASKBUTTON2
BUTTON2_MASK首先到达
MOUSE_RELEASED /
MOUSE_CLICKED副,其次是
BUTTON1_MASK
一些额外的鼠标按钮添加到扩展下列常数表示按钮的标准:BUTTON1,BUTTON2,和BUTTON3。额外的按钮没有分配BUTTONx常数以及按钮的面具没有分配BUTTONx_DOWN_MASK常数。然而,从4开始的序数数字可以被用作按钮号(按钮标识号)。由getMaskForButton(button)法得到的值可以作为按钮的面具。
MOUSE_DRAGGED事件传递给Component,鼠标按钮被按下后释放鼠标按钮(无论鼠标的位置是在Component范围)。由于平台依赖的拖放实现,MOUSE_DRAGGED事件可能不交在本地拖放操作。在多屏幕环境鼠标拖动事件即使鼠标位置外,Component相关的GraphicsConfiguration边界传递到Component。然而,报道的位置,在这种情况下,鼠标拖动事件可能与实际的鼠标位置:
Component相关的GraphicsConfiguration界限。Component相关的虚拟设备的范围。未指定的行为将如果任何特定的MouseEvent实例的id参数不在MOUSE_FIRST到MOUSE_LAST-1范围造成的(MOUSE_WHEEL是不可接受的)。
| Modifier and Type | Field and Description |
|---|---|
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
用于鼠标事件的入侵检测系统范围内的第一个数字。
|
static int |
MOUSE_LAST
用于鼠标事件的入侵检测范围的最后一个数字。
|
static int |
MOUSE_MOVED
“鼠标移动”事件。
|
static int |
MOUSE_PRESSED
“鼠标按下”事件。
|
static int |
MOUSE_RELEASED
“鼠标释放”事件。
|
static int |
MOUSE_WHEEL
“鼠标滚轮”事件。
|
static int |
NOBUTTON
表示没有鼠标按钮;用
getButton()。
|
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_MASKCOMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWNACTION_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_MASKsource| Constructor and Description |
|---|
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
构建了一个具有指定源组件,
MouseEvent对象类型、修饰符、坐标,点击数,和popuptrigger旗。
|
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
构建了一个具有指定源组件,
MouseEvent对象类型、时间、改性剂、坐标,点击数,popuptrigger旗,和按钮的数量。
|
MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)
构建了一个具有指定源组件,
MouseEvent对象类型、时间、改性剂、坐标,绝对坐标,点击数,popuptrigger旗,和按钮的数量。
|
| Modifier and Type | Method and Description |
|---|---|
int |
getButton()
返回,如果有的话,鼠标按钮改变了状态。
|
int |
getClickCount()
返回与此事件关联的鼠标点击次数。
|
Point |
getLocationOnScreen()
返回事件的绝对X和Y位置。
|
int |
getModifiersEx()
返回此事件的扩展修改掩码。
|
static String |
getMouseModifiersText(int modifiers)
返回一个
String实例描述组合键和鼠标按钮,在事件中,如“转移”,或者“Ctrl + Shift”。
|
Point |
getPoint()
返回事件相对于源组件的X、Y位置。
|
int |
getX()
返回事件相对于源组件的水平X位置。
|
int |
getXOnScreen()
返回事件的绝对水平X位置。
|
int |
getY()
返回事件相对于源组件的垂直Y位置。
|
int |
getYOnScreen()
返回事件的绝对垂直位置。
|
boolean |
isPopupTrigger()
返回是否这个鼠标事件的弹出式菜单的触发事件的平台。
|
String |
paramString()
返回标识此事件的参数字符串。
|
void |
translatePoint(int x, int y)
将事件的坐标,一个新的位置添加指定的
x(水平)和
y(垂直)偏移。
|
consume, getMaskForButton, getModifiers, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDowngetComponentgetSourcepublic static final int MOUSE_FIRST
public static final int MOUSE_LAST
public static final int MOUSE_CLICKED
MouseEvent当鼠标按钮按下和释放。
public static final int MOUSE_PRESSED
MouseEvent当鼠标按下按钮。
public static final int MOUSE_RELEASED
MouseEvent当鼠标按钮放弃。
public static final int MOUSE_MOVED
MouseEvent时鼠标的位置变化。
public static final int MOUSE_ENTERED
MouseEvent当鼠标光标进入组件的几何视野开阔的一部分。
public static final int MOUSE_EXITED
MouseEvent发生时,鼠标光标的出口组件的几何视野开阔的一部分。
public static final int MOUSE_DRAGGED
MouseEvent时鼠标的位置变化而鼠标按钮被按下。
public static final int MOUSE_WHEEL
MouseWheelEvent。当一只装有轮子的老鼠有轮子旋转时,它会发生的。
public static final int NOBUTTON
getButton()。
public static final int BUTTON1
getButton()。
public static final int BUTTON2
getButton()。
public static final int BUTTON3
getButton()。
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
MouseEvent对象类型、时间、改性剂、坐标,点击数,popuptrigger旗,和按钮的数量。
创建一个无效的事件(例如使用一个以上的老_masks,或改性剂/按钮的值不匹配)在未指定行为的结果。一个调用的形式MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger, button)表现一样,调用 MouseEvent(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, button)哪里xabs和肝片定义为源的位置在屏幕上加上相对坐标X和Y xabs和肝片如果来源不显示设置为零。该方法抛出一个IllegalArgumentException如果source是null。
source -
Component起源事件
id -整数表示事件的类型。在允许值的信息,看到
MouseEvent类的描述
when -一个长整数,给出时间发生的事件。不建议通过负或零值
modifiers -改性剂的面具描述组合键和鼠标按钮(例如,移动,Ctrl,Alt,和元),在事件。只有扩展剂都可以作为此参数的值(见
InputEvent.getModifiersEx()类扩展性描述)。不建议通过负参数。零值意味着没有通过的修饰语
x -横坐标的鼠标位置。它被允许通过负值
y -鼠标的位置垂直的Y坐标。它被允许通过负值
clickCount -点击鼠标的次数与事件。传递负值不推荐
popupTrigger -一个布尔值,等于
true如果这个事件是一个弹出式菜单触发
button -一个整数,表示,它的鼠标按钮已经改变了它的状态。以下规则适用于此参数:
disabled通过java则允许创建与标准按钮MouseEvent对象:NOBUTTON,BUTTON1,BUTTON2,和BUTTON3。enabled通过java则允许创建与标准按钮MouseEvent对象。如果扩展鼠标按键的支持enabled通过java,那么除了标准按钮,MouseEvent对象可以创建使用按钮的范围从4到MouseInfo.getNumberOfButtons()如果鼠标有超过三个按钮。IllegalArgumentException -如果
button小于零
IllegalArgumentException -如果
source是空的
IllegalArgumentException -如果
button大于按钮和扩展的鼠标按钮的支持是通过java
disabled
IllegalArgumentException -如果
button大于
current number of buttons和扩展的鼠标按钮的支持是通过java
enabled
IllegalArgumentException -如果一个无效的
button价值传递
IllegalArgumentException -如果
source是空的
EventObject.getSource(),
AWTEvent.getID(),
InputEvent.getWhen(),
InputEvent.getModifiers(),
getX(),
getY(),
getClickCount(),
isPopupTrigger(),
getButton()
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
MouseEvent对象类型、修饰符、坐标,点击数,和popuptrigger旗。表格的
MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger)调用的行为一样,调用
MouseEvent(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, MouseEvent.NOBUTTON)哪里xabs和肝片定义为源的位置在屏幕上加上相对坐标X和Y xabs和肝片如果来源不显示设置为零。该方法抛出一个
IllegalArgumentException如果
source是
null。
source -
Component起源事件
id -整数表示事件的类型。在允许值的信息,看到
MouseEvent类的描述
when -一个长整数,给出时间发生的事件。不建议通过负或零值
modifiers -改性剂的面具描述组合键和鼠标按钮(例如,移动,Ctrl,Alt,和元),在事件。只有扩展剂都可以作为此参数的值(见扩展性描述
InputEvent.getModifiersEx()类)。不建议通过负参数。零值意味着没有通过的修饰语
x -横坐标的鼠标位置。它被允许通过负值
y -鼠标的位置垂直的Y坐标。它被允许通过负值
clickCount -点击鼠标的次数与事件。传递负值不推荐
popupTrigger -一个布尔值,等于
true如果这个事件是一个弹出式菜单触发
IllegalArgumentException -如果
source是空的
EventObject.getSource(),
AWTEvent.getID(),
InputEvent.getWhen(),
InputEvent.getModifiers(),
getX(),
getY(),
getClickCount(),
isPopupTrigger()
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)
MouseEvent对象类型、时间、改性剂、坐标,绝对坐标,点击数,popuptrigger旗,和按钮的数量。
创建一个无效的事件(例如使用一个以上的老_masks,或改性剂/按钮的值不匹配)在未指定行为的结果。即使将相对和绝对坐标的值不一致的值传递给构造函数,也可以创建鼠标事件实例,并不会引发异常。该方法抛出一个IllegalArgumentException如果source是null。
source -
Component起源事件
id -整数表示事件的类型。在允许值的信息,看到
MouseEvent类的描述
when -一个长整数,给出时间发生的事件。不建议通过负或零值
modifiers -改性剂的面具描述组合键和鼠标按钮(例如,移动,Ctrl,Alt,和元),在事件。只有扩展剂都可以作为此参数的值(见扩展性描述
InputEvent.getModifiersEx()类)。不建议通过负参数。零值意味着没有通过的修饰语
x -横坐标的鼠标位置。它被允许通过负值
y -鼠标的位置垂直的Y坐标。它被允许通过负值
xAbs的绝对水平的x坐标是允许通过负价值的鼠标位置
yAbs -绝对垂直的y坐标可以通过负价值的鼠标位置
clickCount -点击鼠标的次数与事件。传递负值不推荐
popupTrigger -一个布尔值,等于
true如果这个事件是一个弹出式菜单触发
button -一个整数,表示,它的鼠标按钮已经改变了它的状态。以下规则适用于此参数:
disabled通过java则允许创建与标准按钮MouseEvent对象:NOBUTTON,BUTTON1,BUTTON2,和BUTTON3。enabled通过java则允许创建与标准按钮MouseEvent对象。如果扩展鼠标按键的支持enabled通过java,那么除了标准按钮,MouseEvent对象可以创建使用按钮的范围从4到MouseInfo.getNumberOfButtons()如果鼠标有超过三个按钮。IllegalArgumentException -如果
button小于零
IllegalArgumentException -如果
source是空的
IllegalArgumentException -如果
button大于按钮和扩展的鼠标按钮的支持是通过java
disabled
IllegalArgumentException -如果
button大于
current number of buttons和扩展的鼠标按钮的支持是通过java
enabled
IllegalArgumentException -如果一个无效的
button价值传递
IllegalArgumentException -如果
source是空的
EventObject.getSource(),
AWTEvent.getID(),
InputEvent.getWhen(),
InputEvent.getModifiers(),
getX(),
getY(),
getXOnScreen(),
getYOnScreen(),
getClickCount(),
isPopupTrigger(),
getButton(),
button,
Toolkit.areExtraMouseButtonsEnabled(),
MouseInfo.getNumberOfButtons(),
InputEvent.getMaskForButton(int)
public Point getLocationOnScreen()
Point对象。
GraphicsConfiguration
public int getXOnScreen()
GraphicsConfiguration
public int getYOnScreen()
GraphicsConfiguration
public int getModifiersEx()
扩展的修饰符修饰,以_down_mask后缀,如alt_down_mask,button1_down_mask,及其他。
扩展性代表所有模态键的状态,如ALT,CTRL,元,和刚刚发生的事件的鼠标按钮。
例如,如果用户按按钮1随后按钮2,然后释放他们以相同的顺序,产生了以下的事件序列:
MOUSE_PRESSED:BUTTON1_DOWN_MASKMOUSE_PRESSED:BUTTON1_DOWN_MASK | BUTTON2_DOWN_MASKMOUSE_RELEASED:BUTTON2_DOWN_MASKMOUSE_CLICKED:BUTTON2_DOWN_MASKMOUSE_RELEASED:MOUSE_CLICKED:
不建议将返回值使用这种方法==因为新修饰符可以说在未来。例如,检查转向及Button1下降的适当方式,但Ctrl是由下面的代码演示了:
国际onmask = shift_down_mask | button1_down_mask;国际offmask = ctrl_down_mask;如果((事件。getmodifiersex() &(onmask | offmask))= = onmask){…}上面的代码将即使添加新的修饰工作。
getModifiersEx 方法重写,继承类
InputEvent
public int getX()
public int getY()
public Point getPoint()
Point对象
public void translatePoint(int x,
int y)
x(水平)和
y(垂直)偏移。
x -水平x的值添加到当前的X坐标位置
y -垂直Y值添加到当前Y坐标位置
public int getClickCount()
public int getButton()
MouseInfo.getNumberOfButtons()价值。返回值至少包括以下参数:
NOBUTTONBUTTON1BUTTON2BUTTON3如果(一个事件。getbutton() = = MouseEvent。button1){特别的,一个一,两个鼠标,或三个按钮,此方法可能会返回以下值:
NOBUTTON)BUTTON1)BUTTON2)BUTTON3)BUTTON3没有常数标识符。如果安装有五个按钮的鼠标,该方法会返回以下值:
NOBUTTON)BUTTON1)BUTTON2)BUTTON3)注意:如果扩展鼠标按键支持disabled通过java那么AWT事件子系统不产生扩展的鼠标按钮的鼠标事件。所以,它并不期望这个方法返回NOBUTTON除外,BUTTON1,BUTTON2什么,BUTTON3。
MouseInfo.getNumberOfButtons()如果扩展鼠标按键的支持是
enabled通过java的值之一。这个范围包括
NOBUTTON,
BUTTON1,
BUTTON2,
BUTTON3;
NOBUTTON,
BUTTON1,如果扩展鼠标按键的支持是
disabled通过java
BUTTON2或
BUTTON3
Toolkit.areExtraMouseButtonsEnabled(),
MouseInfo.getNumberOfButtons(),
MouseEvent(Component, int, long, int, int, int, int, int, int, boolean, int),
InputEvent.getMaskForButton(int)
public boolean isPopupTrigger()
注:弹出菜单触发不同的不同的系统。因此,isPopupTrigger应该在mousePressed和mouseReleased检查适当的跨平台功能。
public static String getMouseModifiersText(int modifiers)
String实例描述组合键和鼠标按钮,在事件中,如“转移”,或者“Ctrl + Shift”。这些字符串可以通过改变
awt.properties文件本地化。
请注意,InputEvent.ALT_MASK和InputEvent.BUTTON2_MASK有相等的值,所以“ALT”返回为改性剂。同样,在InputEvent.META_MASK和InputEvent.BUTTON3_MASK有相等的值,所以“元”返回为改性剂。
请注意,传递的负参数是不正确的,并会导致返回一个未指定的字符串。零参数意味着没有通过的修饰语,并会导致返回一个空字符串。
modifiers -改性剂的面具描述组合键和鼠标按钮,在事件
InputEvent.getModifiersExText(int)
public String paramString()
paramString 方法重写,继承类
ComponentEvent
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.