java.awt.event

接口
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

由于鼠标滚轮与滚动 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 反映最新的设置。

从以下版本开始:
1.4
另请参见:
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.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 对象。
 
方法摘要
 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
 

字段详细信息

WHEEL_UNIT_SCROLL

public static final int WHEEL_UNIT_SCROLL
表示按“单位”进行滚动的常量(如使用方向键进行滚动)

另请参见:
getScrollType(), 常量字段值

WHEEL_BLOCK_SCROLL

public static final int WHEEL_BLOCK_SCROLL
表示按“块”进行滚动的常量(如使用 page-up、page-down 键进行滚动)

另请参见:
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 将导致不明确的行为。如果 sourcenull,则此方法抛出 IllegalArgumentException

参数:
source - 产生该事件的 Component
id - 标识事件的整数
when - 给出事件发生时间的 long 值
modifiers - 事件期间按下的修改键(如 shift、ctrl、alt、meta)
x - 鼠标位置的水平 x 坐标
y - 鼠标位置的垂直 y 坐标
clickCount - 与事件关联的鼠标单击数
popupTrigger - 一个 boolean 值,如果此事件是弹出菜单的触发器,则为 true
scrollType - 响应此事件时应该发生的滚动类型;有效值有 WHEEL_UNIT_SCROLLWHEEL_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)

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 将导致不明确的行为。如果 sourcenull,则此方法抛出 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_SCROLLWHEEL_BLOCK_SCROLL
scrollAmount - 对于 scrollType WHEEL_UNIT_SCROLL,是要滚动的单位数
wheelRotation - 鼠标滚轮的旋转量(“喀哒声”的次数)
抛出:
IllegalArgumentException - 如果 source 为 null
从以下版本开始:
1.6
另请参见:
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)
方法详细信息

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()
返回鼠标滚轮旋转的“喀哒声”的次数。

返回:
如果鼠标滚轮向上/远离用户方向旋转,则为负值;如果鼠标滚轮向下/朝向用户方向旋转,则为正值

getUnitsToScroll

public int getUnitsToScroll()
这是帮助实现常用 MouseWheelListener 的便捷方法,以使 ScrollPane 或 JScrollPane 的滚动量符合平台的设置。(注意, ScrollPaneJScrollPane 已内置了此功能。)

当滚动类型是 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)

paramString

public String paramString()
返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。

覆盖:
MouseEvent 中的 paramString
返回:
标识事件及其属性的字符串