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
public class MouseWheelEvent
表示鼠标滚轮在组件中滚动的事件。
滚轮鼠标是一种用滚轮代替中间按键的鼠标。可朝向用户或背离用户旋转此滚轮。尽管鼠标滚轮也有其他用途,但最主要的是用于滚动。
MouseWheelEvent 对象传递给每一个 MouseWheelListener
对象,该对象使用组件的 addMouseWheelListener
方法注册,以接收“感兴趣”鼠标事件。所有此类侦听器对象都获得包含鼠标事件的 MouseEvent
。
由于鼠标滚轮与滚动 Component 的特殊关系,传递 MouseWheelEvent 与传递其他 MouseEvent 稍有不同。这是因为,其他 MouseEvent 通常影响鼠标光标正下方 Component 的更改(如单击某个按钮时),而 MouseWheelEvent 常会在远离鼠标光标处产生影响(位于 ScrollPane 中的某个 Component 上时,滚动滚轮就能滚动 ScrollPane 上的某个 Scrollbar)。
MouseWheelEvent 从鼠标光标下的 Component 开始传递。如果在该 Component 上没有启用 MouseWheelEvent,则把事件传递到启用 MouseWheelEvent 的第一个祖先 Container。这通常是启用了滚轮滚动的 ScrollPane。源 Component 和 x、y 坐标都是相对于该事件的最终目标 (ScrollPane)。这就允许将复杂的 GUI 不加修改地安装到 ScrollPane 中,并让传递到 ScrollPane 的所有 MouseWheelEvent 能够滚动。
某些 AWT Component 是用本机小部件实现的,这些小部件显示它们自己的滚动条,并能自行处理滚动。这种特殊的 Component 因平台而异。当在这些 Component 上移动鼠标滚轮时,事件将直接传递到本机小部件而不会传播到其祖先。
各种平台提供在移动鼠标滚轮时应该发生的自定义滚动量。两个最常见的设置是滚动一定的“单位”数(通常是基于文本的组件中的文本行),或者整个“块”(类似于 page-up/page-down)。MouseWheelEvent 提供了符合底层平台设置的各种方法。用户可在任何时间改变这些平台设置。MouseWheelEvent 反映最新的设置。
MouseWheelListener
,
ScrollPane
,
ScrollPane.setWheelScrollingEnabled(boolean)
,
JScrollPane
,
JScrollPane.setWheelScrollingEnabled(boolean)
,
序列化表格
字段摘要 | |
---|---|
static int |
WHEEL_BLOCK_SCROLL 表示按“块”进行滚动的常量(如使用 page-up、page-down 键进行滚动) |
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.ComponentEvent 继承的字段 |
---|
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN |
从类 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 对象。 |
方法摘要 | |
---|---|
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, 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 WHEEL_UNIT_SCROLL
getScrollType()
,
常量字段值
public static final int WHEEL_BLOCK_SCROLL
getScrollType()
,
常量字段值
构造方法详细信息 |
---|
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
将导致不明确的行为。如果 source
为 null
,则此方法抛出 IllegalArgumentException
。
source
- 产生该事件的
Component
id
- 标识事件的整数
when
- 给出事件发生时间的 long 值
modifiers
- 事件期间按下的修改键(如 shift、ctrl、alt、meta)
x
- 鼠标位置的水平 x 坐标
y
- 鼠标位置的垂直 y 坐标
clickCount
- 与事件关联的鼠标单击数
popupTrigger
- 一个 boolean 值,如果此事件是弹出菜单的触发器,则为 true
scrollType
- 响应此事件时应该发生的滚动类型;有效值有
WHEEL_UNIT_SCROLL
和
WHEEL_BLOCK_SCROLL
scrollAmount
- 对于 scrollType
WHEEL_UNIT_SCROLL
,该参数表示要滚动的单位数
wheelRotation
- 鼠标滚轮的旋转量(“喀哒声”的次数)
IllegalArgumentException
- 如果
source
为 null
MouseEvent.MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
,
MouseEvent.MouseEvent(java.awt.Component, int, long, int, int, int, int, int, int, boolean, int)
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
将导致不明确的行为。如果 source
为 null
,则此方法抛出 IllegalArgumentException
。
即使将不一致的相对坐标值和绝对坐标值传递给构造方法,MouseWheelEvent 实例也能被创建,并且不抛出任何异常。
source
- 产生该事件的
Component
id
- 标识事件的整数
when
- 给出事件发生时间的 long 值
modifiers
- 发生事件期间按下的修改键(shift、ctrl、alt 和 meta)
x
- 鼠标位置的水平 x 坐标
y
- 鼠标位置的垂直 y 坐标
xAbs
- 鼠标位置的绝对水平 x 坐标
yAbs
- 鼠标位置的绝对垂直 y 坐标
clickCount
- 与该事件有关的鼠标单击次数
popupTrigger
- 一个 boolean 值,如果此事件是弹出菜单的触发器,则为 true
scrollType
- 响应此事件时应该发生的滚动类型;有效值有
WHEEL_UNIT_SCROLL
和
WHEEL_BLOCK_SCROLL
scrollAmount
- 对于 scrollType
WHEEL_UNIT_SCROLL
,是要滚动的单位数
wheelRotation
- 鼠标滚轮的旋转量(“喀哒声”的次数)
IllegalArgumentException
- 如果
source
为 null
MouseEvent.MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
,
MouseEvent.MouseEvent(java.awt.Component, int, long, int, int, int, int, int, int, boolean, int)
方法详细信息 |
---|
public int getScrollType()
Adjustable.getUnitIncrement()
,
Adjustable.getBlockIncrement()
,
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
,
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
public int getScrollAmount()
getScrollType
返回
MouseWheelEvent.WHEEL_UNIT_SCROLL
时有效。
getScrollType
返回
MouseWheelEvent.WHEEL_BLOCK_SCROLL
,则为不明确的值
getScrollType()
public int getWheelRotation()
public int getUnitsToScroll()
ScrollPane
和
JScrollPane
已内置了此功能。)
当滚动类型是 MouseWheelEvent.WHEEL_UNIT_SCROLL 时,此方法返回要滚动的单位数,只有在 getScrollType
返回 MouseWheelEvent.WHEEL_UNIT_SCROLL 时才应该调用此方法。
滚动方向、滚轮移动量和滚轮滚动的平台设置都要考虑在内。此方法没有也不能考虑 Adjustable/Scrollable 单位增量值,因为该值随滚动组件的不同而不同。
以下简化的示例说明了在侦听器中如何使用此方法:
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)
public String paramString()
MouseEvent
中的
paramString