public class MouseWheelEvent extends MouseEvent
轮鼠标是具有代替中间按钮的轮的鼠标。 该轮可以朝向或远离用户旋转。 鼠标滚轮最常用于滚动,虽然其他用途是可能的。
将MouseWheelEvent对象传递给每个MouseWheelListener
对象,该对象使用组件的addMouseWheelListener
方法注册接收“有趣”的鼠标事件。 每个这样的侦听器对象获得包含鼠标事件的MouseEvent
。
由于鼠标滚轮与滚动组件的特殊关系,MouseWheelEvents的传递与其他MouseEvents有所不同。 这是因为当其他MouseEvents通常影响鼠标光标下方的组件上的更改(例如,单击一个按钮时),MouseWheelEvents通常会从鼠标光标中移除效果(在ScrollPane内部的组件上移动滚轮滚动ScrollPane上的滚动条之一)。
MouseWheelEvents从鼠标光标下面的组件开始传递。 如果在组件上未启用MouseWheelEvents,那么事件将被发送到启用了MouseWheelEvents的第一个祖先Container。 这通常是启用滚轮滚动的ScrollPane。 源组件和x,y坐标将相对于事件的最终目标(ScrollPane)。 这样就可以将一个复杂的GUI安装到一个ScrollPane中,而不用修改所有的MouseWheelEvents就可以传递给ScrollPane进行滚动。
一些AWT组件使用显示自己的滚动条并处理自己的滚动条的本机部件实现。 这是真实的特定组件将因平台而异。 当鼠标滚轮移动到这些组件之一时,事件将直接传递到本机窗口小部件,而不会传播到祖先。
平台可以自定义当鼠标滚轮移动时应该发生的滚动量。 两个最常见的设置是滚动一定数量的“单位”(通常在基于文本的组件中的文本行)或整个“块”(类似于页面上/下/下)。 MouseWheelEvent提供了符合底层平台设置的方法。 这些平台设置可以随时由用户进行更改。 MouseWheelEvents反映最近的设置。
MouseWheelEvent
类包括获取旋转鼠标滚轮的“点击次数”的方法。 getWheelRotation()
方法返回对应于车轮旋转的凹口数的“点击次数”的整数。 除了这种方法外, MouseWheelEvent
类还提供了getPreciseWheelRotation()
方法,该方法在发生部分旋转的情况下返回双重数量的“点击”。 getPreciseWheelRotation()
方法是有用的,如果鼠标支持高分辨率的车轮,如自由转动的车轮没有凹口。 应用程序可以通过使用这种方法更精确地处理鼠标滚轮事件,从而使视觉感知更平滑。
Modifier and Type | Field and Description |
---|---|
static int |
WHEEL_BLOCK_SCROLL
表示通过“块”滚动的常量(如滚动页面向下,向下翻页键)
|
static int |
WHEEL_UNIT_SCROLL
表示以“单位”滚动的常量(如用箭头键滚动)
|
BUTTON1, BUTTON2, BUTTON3, MOUSE_CLICKED, MOUSE_DRAGGED, MOUSE_ENTERED, MOUSE_EXITED, MOUSE_FIRST, MOUSE_LAST, MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED, MOUSE_WHEEL, NOBUTTON
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
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
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
source
Constructor and Description |
---|
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 对象。
|
Modifier and Type | Method and Description |
---|---|
double |
getPreciseWheelRotation()
返回鼠标滚轮旋转的“点击次数”为双倍。
|
int |
getScrollAmount()
返回每次点击鼠标滚轮旋转时应滚动的单位数。
|
int |
getScrollType()
返回响应此事件应该发生的滚动类型。
|
int |
getUnitsToScroll()
这是一种方便的方法来帮助实现常用的MouseWheelListener - 将ScrollPane或JScrollPane滚动一个符合平台设置的量。
|
int |
getWheelRotation()
返回鼠标滚轮旋转的“点击次数”为整数。
|
String |
paramString()
返回标识此事件的参数字符串。
|
getButton, getClickCount, getLocationOnScreen, getModifiersEx, getMouseModifiersText, getPoint, getX, getXOnScreen, getY, getYOnScreen, isPopupTrigger, translatePoint
consume, getMaskForButton, getModifiers, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
getComponent
getSource
@Native public static final int WHEEL_UNIT_SCROLL
getScrollType()
,
Constant Field Values
@Native public static final int WHEEL_BLOCK_SCROLL
getScrollType()
,
Constant Field Values
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
的源组件,类型,修饰符,坐标,滚动类型,滚动量和轮子旋转的MouseWheelEvent
对象。
绝对坐标xAbs和yAbs被设置为屏幕上的源位置加上相对坐标x和y。 如果源不显示,则xAbs和yAb设置为零。
请注意,传递无效的id
会导致未指定的行为。 此方法抛出IllegalArgumentException
如果source
是null
。
source
- 发起事件的
Component
id
- 标识事件的整数
when
- 给出事件发生的时间很长
modifiers
- 修改键在事件期间向下(shift,ctrl,alt,meta)
x
- 鼠标位置的水平x坐标
y
- 鼠标位置的垂直y坐标
clickCount
- 与事件关联的鼠标点击次数
popupTrigger
- 一个布尔值,如果此事件是弹出菜单的触发器,则为true
scrollType
- 响应此事件应该发生的滚动类型;
有效值为WHEEL_UNIT_SCROLL
和WHEEL_BLOCK_SCROLL
scrollAmount
- for scrollType
WHEEL_UNIT_SCROLL
,要滚动的单位数
wheelRotation
- 旋转鼠标滚轮的“点击次数”的整数
IllegalArgumentException
- 如果
source
为空
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
会导致未指定的行为。 此方法抛出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
- 对于scrollType
WHEEL_UNIT_SCROLL
,要滚动的单位数
wheelRotation
- 旋转鼠标滚轮的“点击次数”的整数
IllegalArgumentException
- 如果
source
为空
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, double preciseWheelRotation)
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
- 对于scrollType
WHEEL_UNIT_SCROLL
,要滚动的单位数
wheelRotation
- 旋转鼠标滚轮的“点击次数”的整数
preciseWheelRotation
- 旋转鼠标滚轮的双击“点击次数”
IllegalArgumentException
- 如果
source
为空
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()
getPreciseWheelRotation()
public double getPreciseWheelRotation()
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()
paramString
在类别
MouseEvent