|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.util.EventObject
java.awt.AWTEvent
java.awt.event.ComponentEvent
java.awt.event.InputEvent
java.awt.event.MouseEvent
public class MouseEvent
指示组件中发生鼠标动作的事件。当且仅当动作发生时,鼠标光标处于特定组件边界未被遮掩的部分之上时才认为在该组件上发生了鼠标动作。组件边界可以被可见组件的子组件、菜单或顶层窗口所遮掩。此事件既可用于鼠标事件(单击、进入、离开),又可用于鼠标移动事件(移动和拖动)。
通过组件对象可为下列活动生成此低级别的事件:
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 修饰符 按键
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_MASK 的 MOUSE_RELEASED/MOUSE_CLICKED 对,后跟 BUTTON1_MASK 对。
在释放鼠标按键前,MOUSE_DRAGGED 事件被传递到在其中按下鼠标按键的 Component(而不管鼠标位置是否处于 Component 的边界内)。由于拖放实现是与平台相关的,所以在本机拖放操作期间可能不传递 MOUSE_DRAGGED 事件。在多屏幕环境中,即使鼠标位置在与 Component 关联的 GraphicsConfiguration 边界之外,也会将鼠标拖动事件传递给该 Component。但是在这种情况下所报告的鼠标拖动事件位置可能与实际的鼠标位置不同:
Component 关联的 GraphicsConfiguration 边界内。
Component 关联的虚拟设备的边界内。
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 |
| 字段详细信息 |
|---|
public 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 对象。
注意,传递一个无效的 id 会导致不明确的行为。创建一个无效的事件(例如使用多个旧 _MASK,或者使用不匹配的修饰符/按键值)会导致不明确的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。
source - 产生该事件的 Componentid - 标识事件的整数when - 给出事件发生时间的 long int 值modifiers - 事件期间按下的组合键(如 shift、ctrl、alt、meta)。应该使用扩展 _DOWN_MASK 或旧 _MASK 修饰符,但是在一个事件中不应混用两种模型。首选使用扩展修饰符。x - 鼠标位置的水平 x 坐标y - 鼠标位置的垂直 y 坐标clickCount - 与事件关联的鼠标单击次数popupTrigger - 一个 boolean 值,如果此事件是某个弹出菜单的触发器,则为 truebutton - 改变了状态的鼠标按键。为 NOBUTTON、BUTTON1、BUTTON2 或 BUTTON3。
IllegalArgumentException - 如果传递了无效的 button 值
IllegalArgumentException - 如果 source 为 null
public MouseEvent(Component source,
int id,
long when,
int modifiers,
int x,
int y,
int clickCount,
boolean popupTrigger)
MouseEvent 对象。
注意,传递一个无效的 id 会导致不明确的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。
source - 产生该事件的 Componentid - 标识事件的整数when - 给出事件发生时间的 long int 值modifiers - 事件期间按下的组合键(如 shift、ctrl、alt、meta)。应该使用扩展 _DOWN_MASK 或旧 _MASK 修饰符,但是在一个事件中不应混用两种模型。首选使用扩展修饰符。x - 鼠标位置的水平 x 坐标y - 鼠标位置的垂直 y 坐标clickCount - 与事件关联的鼠标单击次数popupTrigger - 一个 boolean 值,如果此事件是某个弹出菜单的触发器,则为 true
IllegalArgumentException - 如果 source 为 null| 方法详细信息 |
|---|
public int getX()
public int getY()
public Point getPoint()
Point 对象,包含相对于源组件的 x 和 y 坐标
public void translatePoint(int x,
int y)
x(水平)和 y(垂直)偏移量。
x - 与当前 x 坐标位置相加的水平 x 值y - 与当前 y 坐标位置相加的垂直 y 值public int getClickCount()
public int getButton()
NOBUTTON、BUTTON1、BUTTON2 或 BUTTON3。public boolean isPopupTrigger()
注:在不同系统上弹出菜单的触发方式不同。因此,为了正确实现跨平台功能,在 mouseReleased 和 mousePressed 中都应检查 isPopupTrigger。
public static String getMouseModifiersText(int modifiers)
String。通过更改 awt.properties 文件可以本地化这些字符串。
注意,InputEvent.ALT_MASK 和 InputEvent.BUTTON2_MASK 具有相同的值,所以这两个修饰符都返回字符串“Alt”。同样,InputEvent.META_MASK 和 InputEvent.BUTTON3_MASK 具有相同的值,所以这两个修饰符也都返回字符串“Meta”。
modifiers - 描述事件期间所按下的组合键和鼠标按键的修饰符掩码
InputEvent.getModifiersExText(int)public String paramString()
ComponentEvent 中的 paramString
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。