- java.lang.Object
-
- java.util.EventObject
-
- java.awt.AWTEvent
-
- java.awt.event.ComponentEvent
-
- java.awt.event.InputEvent
-
- java.awt.event.MouseEvent
-
- java.awt.event.MouseWheelEvent
-
- 实现的所有接口
-
Serializable
public class MouseWheelEvent extends MouseEvent
指示鼠标滚轮在组件中旋转的事件。滚轮鼠标是一个鼠标,它有一个轮子代替中间按钮。 该轮可以朝向或远离用户旋转。 鼠标滚轮最常用于滚动,但其他用途也是可能的。
将MouseWheelEvent对象传递给每个
MouseWheelListener
对象,该对象使用组件的addMouseWheelListener
方法进行注册以接收“有趣”的鼠标事件。 每个这样的侦听器对象都获得包含鼠标事件的MouseEvent
。由于鼠标滚轮与滚动组件的特殊关系,MouseWheelEvents的传递方式与其他MouseEvent有所不同。 这是因为虽然其他MouseEvent通常会直接影响鼠标光标下组件的更改(例如,单击按钮时),但MouseWheelEvents通常会远离鼠标光标(在ScrollPane内部的Component上方移动轮子时)滚动ScrollPane上的其中一个滚动条)。
MouseWheelEvents从鼠标光标下方的Component开始传递。 如果未在Component上启用MouseWheelEvents,则会将事件传递给启用了MouseWheelEvents的第一个祖先Container。 这通常是一个启用滚轮滚动的ScrollPane。 源Component和x,y坐标将相对于事件的最终目标(ScrollPane)。 这允许在不修改ScrollPane的情况下安装复杂的GUI,并将所有MouseWheelEvent传递给ScrollPane进行滚动。
一些AWT组件使用本机小部件实现,这些小部件显示自己的滚动条并处理它们自己的滚动。 适用于此的特定组件因平台而异。 当鼠标滚轮移动到其中一个组件上时,事件将直接传递到本机窗口小部件,而不会传播到祖先。
平台提供了移动鼠标滚轮时应该进行的滚动量的自定义。 两种最常见的设置是滚动一定数量的“单位”(通常是基于文本的组件中的文本行)或整个“块”(类似于向上翻页/向下翻页)。 MouseWheelEvent提供符合底层平台设置的方法。 用户可以随时更改这些平台设置。 MouseWheelEvents反映最新设置。
MouseWheelEvent
类包括获取鼠标滚轮旋转的“点击次数”的方法。getWheelRotation()
方法返回与轮子旋转的槽口数相对应的整数“点击次数”。 除此方法外,MouseWheelEvent
类还提供了getPreciseWheelRotation()
方法,该方法在发生部分旋转时返回双倍数量的“点击”。 如果鼠标支持高分辨率轮,例如没有凹槽的自由旋转轮,则getPreciseWheelRotation()
方法非常有用。 应用程序可以通过使用此方法更精确地处理鼠标滚轮事件而受益,从而使视觉感知更平滑。
-
-
字段汇总
字段 变量和类型 字段 描述 static int
WHEEL_BLOCK_SCROLL
表示通过“块”滚动的常量(如使用向上翻页,向下翻页键滚动)static int
WHEEL_UNIT_SCROLL
表示按“单位”滚动的常量(如使用箭头键滚动)-
声明的属性在类 java.awt.event.MouseEvent
BUTTON1, BUTTON2, BUTTON3, MOUSE_CLICKED, MOUSE_DRAGGED, MOUSE_ENTERED, MOUSE_EXITED, MOUSE_FIRST, MOUSE_LAST, MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED, MOUSE_WHEEL, NOBUTTON
-
声明的属性在类 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
-
-
构造方法摘要
构造方法 构造器 描述 MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation)
使用指定的源组件,类型,修改器,坐标,滚动类型,滚动量和滚轮旋转构造一个MouseWheelEvent
对象。MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation)
使用指定的源组件,类型,修改器,坐标,绝对坐标,滚动类型,滚动量和滚轮旋转构造一个MouseWheelEvent
对象。MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation, double preciseWheelRotation)
使用指定的源组件,类型,修改器,坐标,绝对坐标,滚动类型,滚动量和滚轮旋转构造一个MouseWheelEvent
对象。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 double
getPreciseWheelRotation()
返回鼠标滚轮旋转的“点击次数”,为double。int
getScrollAmount()
返回每次单击鼠标滚轮时应滚动的单位数。int
getScrollType()
返回响应此事件应发生的滚动类型。int
getUnitsToScroll()
这是一种方便的方法来帮助实现常见的MouseWheelListener - 滚动ScrollPane或JScrollPane的数量符合平台设置。int
getWheelRotation()
以整数形式返回鼠标滚轮旋转的“点击次数”。String
paramString()
返回标识此事件的参数字符串。-
声明方法的类 java.awt.event.MouseEvent
getButton, getClickCount, getLocationOnScreen, getMouseModifiersText, getPoint, getX, getXOnScreen, getY, getYOnScreen, isPopupTrigger, translatePoint
-
声明方法的类 java.awt.event.InputEvent
consume, getMaskForButton, getModifiers, getModifiersEx, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
-
声明方法的类 java.awt.event.ComponentEvent
getComponent
-
声明方法的类 java.util.EventObject
getSource
-
-
-
-
字段详细信息
-
WHEEL_UNIT_SCROLL
@Native public static final int WHEEL_UNIT_SCROLL
表示按“单位”滚动的常量(如使用箭头键滚动)- 另请参见:
-
getScrollType()
, 常数字段值
-
WHEEL_BLOCK_SCROLL
@Native public static final int WHEEL_BLOCK_SCROLL
表示通过“块”滚动的常量(如使用向上翻页,向下翻页键滚动)- 另请参见:
-
getScrollType()
, 常数字段值
-
-
构造方法详细信息
-
MouseWheelEvent
public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation)
使用指定的源组件,类型,修改器,坐标,滚动类型,滚动量和滚轮旋转构造一个MouseWheelEvent
对象。绝对坐标xAbs和yAbs设置为源在屏幕上的位置加上相对坐标x和y。 如果源未显示,则xAbs和yAbs设置为零。
请注意,传入无效的
id
导致未指定的行为。 此方法抛出IllegalArgumentException
如果source
为null
。- 参数
-
source
- 发起该事件的Component
-
id
- 标识事件的整数 -
when
- 给出事件发生时间的长when
-
modifiers
- 事件期间修改键按下(shift,ctrl,alt,meta) -
x
- 鼠标位置的水平x坐标 -
y
- 鼠标位置的垂直y坐标 -
clickCount
- 与事件关联的鼠标单击次数 -
popupTrigger
- 布尔值,如果此事件是弹出菜单的触发器,则为true -
scrollType
- 响应此事件应该进行的滚动类型; 有效值为WHEEL_UNIT_SCROLL
和WHEEL_BLOCK_SCROLL
-
scrollAmount
- 对于scrollTypeWHEEL_UNIT_SCROLL
,要滚动的单位数 -
wheelRotation
- 鼠标滚轮旋转的整数“点击次数” - 异常
-
IllegalArgumentException
- 如果source
为空 - 另请参见:
-
MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
,MouseEvent(java.awt.Component, int, long, int, int, int, int, int, int, boolean, int)
-
MouseWheelEvent
public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation)
使用指定的源组件,类型,修改器,坐标,绝对坐标,滚动类型,滚动量和滚轮旋转构造一个MouseWheelEvent
对象。请注意,传入无效的
id
导致未指定的行为。 此方法抛出IllegalArgumentException
如果source
为null
。即使将相对和绝对坐标的不一致值传递给构造函数,仍会创建MouseWheelEvent实例,并且不会引发异常。
- 参数
-
source
- 发起此事件的Component
-
id
- 标识事件的整数 -
when
- 给出事件发生时间的长when
-
modifiers
- 事件期间修改键按下(shift,ctrl,alt,meta) -
x
- 鼠标位置的水平x坐标 -
y
- 鼠标位置的垂直y坐标 -
xAbs
- 鼠标位置的绝对水平x坐标 -
yAbs
- 鼠标位置的绝对垂直y坐标 -
clickCount
- 与事件关联的鼠标单击次数 -
popupTrigger
- 布尔值,如果此事件是弹出菜单的触发器,则为true -
scrollType
- 响应此事件应该进行的滚动类型; 有效值为WHEEL_UNIT_SCROLL
和WHEEL_BLOCK_SCROLL
-
scrollAmount
- 对于scrollTypeWHEEL_UNIT_SCROLL
,要滚动的单位数 -
wheelRotation
- 鼠标滚轮旋转的整数“点击次数” - 异常
-
IllegalArgumentException
- 如果source
为空 - 从以下版本开始:
- 1.6
- 另请参见:
-
MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
,MouseEvent(java.awt.Component, int, long, int, int, int, int, int, int, boolean, int)
-
MouseWheelEvent
public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation, double preciseWheelRotation)
使用指定的源组件,类型,修改器,坐标,绝对坐标,滚动类型,滚动量和滚轮旋转构造一个MouseWheelEvent
对象。请注意,传入无效的
id
参数会导致未指定的行为。 此方法抛出IllegalArgumentException
如果source
等于null
。即使将相对和绝对坐标的不一致值传递给构造函数,仍会创建一个
MouseWheelEvent
实例,并且不会引发异常。- 参数
-
source
- 发起该事件的Component
-
id
- 标识事件的整数值 -
when
- 一个长值,用于指示事件发生的时间 -
modifiers
- 事件期间修改键按下(shift,ctrl,alt,meta) -
x
- 鼠标位置的水平x
坐标 -
y
- 鼠标位置的垂直y
坐标 -
xAbs
- 鼠标位置的绝对水平x
坐标 -
yAbs
- 鼠标位置的绝对垂直y
坐标 -
clickCount
- 与事件关联的鼠标单击次数 -
popupTrigger
- 布尔值,true
如果此事件是弹出菜单的触发器 -
scrollType
- 响应此事件应该进行的滚动类型; 有效值为WHEEL_UNIT_SCROLL
和WHEEL_BLOCK_SCROLL
-
scrollAmount
- 对于scrollTypeWHEEL_UNIT_SCROLL
,要滚动的单位数 -
wheelRotation
- 鼠标滚轮旋转的整数“点击次数” -
preciseWheelRotation
- 鼠标滚轮旋转的双倍“点击次数” - 异常
-
IllegalArgumentException
- 如果source
为空 - 从以下版本开始:
- 1.7
- 另请参见:
-
MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
,MouseEvent(java.awt.Component, int, long, int, int, int, int, int, int, boolean, int)
-
-
方法详细信息
-
getScrollType
public int getScrollType()
返回响应此事件应发生的滚动类型。 这由本机平台决定。 法律价值观是:- MouseWheelEvent.WHEEL_UNIT_SCROLL
- MouseWheelEvent.WHEEL_BLOCK_SCROLL
- 结果
- MouseWheelEvent.WHEEL_UNIT_SCROLL或MouseWheelEvent.WHEEL_BLOCK_SCROLL,具体取决于本机平台的配置。
- 另请参见:
-
Adjustable.getUnitIncrement()
,Adjustable.getBlockIncrement()
,Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
,Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
-
getScrollAmount
public int getScrollAmount()
返回每次单击鼠标滚轮时应滚动的单位数。 仅在getScrollType
返回MouseWheelEvent.WHEEL_UNIT_SCROLL
有效- 结果
-
要滚动的单位数,或者如果
getScrollType
返回MouseWheelEvent.WHEEL_BLOCK_SCROLL
未定义的值 - 另请参见:
-
getScrollType()
-
getWheelRotation
public int getWheelRotation()
以整数形式返回鼠标滚轮旋转的“点击次数”。 如果鼠标支持高分辨率轮,则可能发生部分旋转。 在这种情况下,该方法返回零,直到累积完整的“点击”。- 结果
- 如果鼠标滚轮向上/远离用户旋转则为负值;如果鼠标滚轮向下/向用户旋转,则为正值
- 另请参见:
-
getPreciseWheelRotation()
-
getPreciseWheelRotation
public double getPreciseWheelRotation()
返回鼠标滚轮旋转的“点击次数”,为double。 如果鼠标支持高分辨率轮,则可能发生部分旋转。 在这种情况下,返回值将包括小数“点击”。- 结果
- 如果鼠标滚轮向上或向远离用户旋转则为负值;如果向下旋转鼠标滚轮或向用户旋转,则为正值
- 从以下版本开始:
- 1.7
- 另请参见:
-
getWheelRotation()
-
getUnitsToScroll
public int getUnitsToScroll()
这是一种方便的方法来帮助实现常见的MouseWheelListener - 滚动ScrollPane或JScrollPane的数量符合平台设置。 (但请注意,ScrollPane
和JScrollPane
已内置此功能。)当滚动类型为MouseWheelEvent.WHEEL_UNIT_SCROLL时,此方法返回要滚动的单位数,并且只应在
getScrollType
返回MouseWheelEvent.WHEEL_UNIT_SCROLL时调用。滚动方向,车轮运动量和车轮滚动的平台设置都被考虑在内。 此方法不会也不能考虑可调整/可滚动单位增量的值,因为这将在滚动组件之间变化。
有关如何在侦听器中使用此方法的简单示例:
mouseWheelMoved(MouseWheelEvent event) { ScrollPane sp = getScrollPaneFromSomewhere(); Adjustable adj = sp.getVAdjustable() if (MouseWheelEvent.getScrollType() == WHEEL_UNIT_SCROLL) { int totalScrollAmount = event.getUnitsToScroll() * adj.getUnitIncrement(); adj.setValue(adj.getValue() + totalScrollAmount); } }
- 结果
- 根据鼠标滚轮旋转的方向和数量以及本机平台的滚轮滚动设置滚动的单位数
- 另请参见:
-
getScrollType()
,getScrollAmount()
,MouseWheelListener
,Adjustable
,Adjustable.getUnitIncrement()
,Scrollable
,Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
,ScrollPane
,ScrollPane.setWheelScrollingEnabled(boolean)
,JScrollPane
,JScrollPane.setWheelScrollingEnabled(boolean)
-
paramString
public String paramString()
返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。- 重写:
-
paramString
在课程MouseEvent
- 结果
- 标识事件及其属性的字符串
-
-