模块  java.desktop
软件包  java.awt.event

Class 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()方法非常有用。 应用程序可以通过使用此方法更精确地处理鼠标滚轮事件而受益,从而使视觉感知更平滑。

    从以下版本开始:
    1.4
    另请参见:
    MouseWheelListenerScrollPaneScrollPane.setWheelScrollingEnabled(boolean)JScrollPaneJScrollPane.setWheelScrollingEnabled(boolean)Serialized Form
    • 字段详细信息

      • 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如果sourcenull

        参数
        source - 发起该事件的 Component
        id - 标识事件的整数
        when - 给出事件发生时间的长 when
        modifiers - 事件期间修改键按下(shift,ctrl,alt,meta)
        x - 鼠标位置的水平x坐标
        y - 鼠标位置的垂直y坐标
        clickCount - 与事件关联的鼠标单击次数
        popupTrigger - 布尔值,如果此事件是弹出菜单的触发器,则为true
        scrollType - 响应此事件应该进行的滚动类型; 有效值为WHEEL_UNIT_SCROLLWHEEL_BLOCK_SCROLL
        scrollAmount - 对于scrollType WHEEL_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如果sourcenull

        即使将相对和绝对坐标的不一致值传递给构造函数,仍会创建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_SCROLLWHEEL_BLOCK_SCROLL
        scrollAmount - 对于scrollType WHEEL_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_SCROLLWHEEL_BLOCK_SCROLL
        scrollAmount - 对于scrollType WHEEL_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)
    • 方法详细信息

      • 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的数量符合平台设置。 (但请注意, ScrollPaneJScrollPane已内置此功能。)

        当滚动类型为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()MouseWheelListenerAdjustableAdjustable.getUnitIncrement()ScrollableScrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)ScrollPaneScrollPane.setWheelScrollingEnabled(boolean)JScrollPaneJScrollPane.setWheelScrollingEnabled(boolean)
      • paramString

        public String paramString()
        返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。
        重写:
        paramString在课程 MouseEvent
        结果
        标识事件及其属性的字符串