- 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
-
- All Implemented Interfaces:
-
Serializable
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中,而不用修改ScrollPane,并将所有的MouseWheelEvents传递给ScrollPane进行滚动。
一些AWT组件使用显示自己的滚动条并处理自己的滚动条的本机部件实现。 这是真实的特定组件将因平台而异。 当鼠标滚轮移动到这些组件之一时,事件将直接传递到本机窗口小部件,而不会传播到祖先。
平台可以自定义当鼠标滚轮移动时应该发生的滚动量。 两个最常见的设置是滚动一定数量的“单位”(通常在基于文本的组件中的文本行)或整个“块”(类似于页面上/下/下)。 MouseWheelEvent提供了符合底层平台设置的方法。 这些平台设置可以随时由用户进行更改。 MouseWheelEvents反映最近的设置。
MouseWheelEvent
课程包括获取旋转鼠标滚轮的“点击次数”的方法。getWheelRotation()
方法返回与轮的旋转次数相对应的“点击次数”整数。 除了这种方法之外,MouseWheelEvent
类还提供了getPreciseWheelRotation()
方法,它可以在发生部分旋转的情况下返回双倍数量的“点击”。 如果鼠标支持高分辨率车轮,例如自由旋转的车轮,无凹槽,则getPreciseWheelRotation()
方法非常有用。 应用程序可以通过使用这种方法更精确地处理鼠标滚轮事件,从而使视觉感知更平滑。
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
WHEEL_BLOCK_SCROLL
表示通过“块”滚动的常量(如滚动页面向下,向下翻页键)static int
WHEEL_UNIT_SCROLL
表示以“单位”滚动的常量(如用箭头键滚动)-
Fields inherited from class 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
-
Fields inherited from class java.awt.event.ComponentEvent
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
-
Fields inherited from class java.util.EventObject
source
-
Fields inherited from class 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
-
Fields inherited from class 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
-
-
构造方法摘要
构造方法 Constructor 描述 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 方法 描述 double
getPreciseWheelRotation()
返回鼠标滚轮旋转的“点击次数”为双倍。int
getScrollAmount()
返回每次点击鼠标滚轮旋转时应滚动的单位数。int
getScrollType()
返回响应此事件应该发生的滚动类型。int
getUnitsToScroll()
这是一个方便的方法来帮助实现常用的MouseWheelListener - 将ScrollPane或JScrollPane滚动一个符合平台设置的量。int
getWheelRotation()
返回鼠标滚轮旋转的“点击次数”为整数。String
paramString()
返回标识此事件的参数字符串。-
Methods inherited from class java.awt.event.ComponentEvent
getComponent
-
Methods inherited from class java.util.EventObject
getSource
-
Methods inherited from class java.awt.event.InputEvent
consume, getMaskForButton, getModifiers, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
-
Methods inherited from class java.awt.event.MouseEvent
getButton, getClickCount, getLocationOnScreen, getModifiersEx, getMouseModifiersText, getPoint, getX, getXOnScreen, getY, getYOnScreen, isPopupTrigger, translatePoint
-
-
-
-
字段详细信息
-
WHEEL_UNIT_SCROLL
@Native public static final int WHEEL_UNIT_SCROLL
表示以“单位”滚动的常量(如用箭头键滚动)- 另请参见:
-
getScrollType()
, Constant Field Values
-
WHEEL_BLOCK_SCROLL
@Native public static final int WHEEL_BLOCK_SCROLL
表示通过“块”滚动的常量(如滚动页面向下,向下翻页键)- 另请参见:
-
getScrollType()
, Constant Field Values
-
-
构造方法详细信息
-
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和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
- 对于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
- 一个很长的时间,给出事件发生的时间 -
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
- 给出事件发生时间的长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()
返回鼠标滚轮旋转的“点击次数”为整数。 如果鼠标支持高分辨率轮,则可能会发生部分旋转。 在这种情况下,该方法返回0,直到累积完整的“点击”为止。- 结果
- 如果鼠标滚轮向上/远离用户旋转,则为负值,如果鼠标滚轮朝向用户向下旋转,则为正值
- 另请参见:
-
getPreciseWheelRotation()
-
getPreciseWheelRotation
public double getPreciseWheelRotation()
返回鼠标滚轮旋转的“点击次数”为双倍。 如果鼠标支持高分辨率轮,则可能会发生部分旋转。 在这种情况下,返回值将包含小数点击。- 结果
- 如果鼠标滚轮向上旋转或远离用户,则为负值,如果鼠标滚轮向下旋转或朝向用户旋转,则为正值
- 从以下版本开始:
- 1.7
- 另请参见:
-
getWheelRotation()
-
getUnitsToScroll
public int getUnitsToScroll()
这是一个方便的方法来帮助实现常用的MouseWheelListener - 将ScrollPane或JScrollPane滚动一个符合平台设置的量。 (请注意,ScrollPane
和JScrollPane
已经内置了此功能。)当滚动类型为MouseWheelEvent.WHEEL_UNIT_SCROLL时,此方法返回滚动的单位数,只有当
getScrollType
返回MouseWheelEvent.WHEEL_UNIT_SCROLL时,才能调用getScrollType
。滚动方向,车轮移动量和车轮滚动的平台设置都被考虑在内。 此方法不能也不能考虑可调/可滚动单位增量的值,因为这将在滚动组件之间变化。
在侦听器中如何使用此方法的简化示例:
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
- 结果
- 标识事件及其属性的字符串
-
-