Класс MouseWheelEvent
- Все реализованные интерфейсы:
Serializable
public class MouseWheelEvent extends MouseEvent
Мышь с колесом — это мышь, у которой колесо заменяет среднюю кнопку. Это колесо можно вращать к себе или от себя. Колеса мыши чаще всего используются для прокрутки, хотя возможны и другие применения.
Объект MouseWheelEvent передаётся каждому MouseWheelListener объекту, зарегистрированному для получения «интересных» событий мыши с помощью метода компонента addMouseWheelListener. Каждый такой объект-слушатель получает MouseEvent, содержащий событие мыши.
Из-за специальных отношений колеса мыши к прокручивающим компонентам, MouseWheelEvents доставляются несколько иначе, чем другие MouseEvents. Это связано с тем, что, в то время как другие MouseEvents обычно влияют на изменение в компоненте, расположенном непосредственно под курсором мыши (например, при нажатии на кнопку), MouseWheelEvents часто влияют на область за пределами курсора мыши (движение колеса над компонентом внутри ScrollPane должно прокручивать одну из полос прокрутки на ScrollPane).
MouseWheelEvents начинают доставку с компонента под курсором мыши. Если MouseWheelEvents не включены в компоненте, событие доставляется первому контейнеру-предка с включёнными MouseWheelEvents. Обычно это ScrollPane с включённой прокруткой колесом. Источник компонента и координаты x, y будут относиться к конечному пункту назначения события (ScrollPane). Это позволяет установить сложный графический интерфейс в ScrollPane без модификаций, и все MouseWheelEvents будут доставляться в ScrollPane для прокрутки.
Некоторые компоненты AWT реализованы с использованием нативных виджетов, которые отображают свои полосы прокрутки и обрабатывают свою прокрутку. Конкретные компоненты, для которых это верно, будут различаться в зависимости от платформы. Когда колесо мыши перемещается над одним из этих компонентов, событие доставляется непосредственно нативный виджет, а не распространяется на предков.
Платформы предлагают настройку количества прокрутки, которое должно происходить при перемещении колеса мыши. Два наиболее распространённых параметра — прокрутить определённое количество «единиц» (обычно строк текста в текстовом компоненте) или целый «блок» (похоже на Page-Up/Page-Down). MouseWheelEvent предоставляет методы для соответствия настройкам базовой платформы. Эти настройки платформы могут быть изменены пользователем в любое время. MouseWheelEvents отражают последние настройки.
Класс MouseWheelEvent содержит методы для получения количества «нажатий» вращения колеса мыши. Метод getWheelRotation() возвращает целое число «нажатий», соответствующее количеству делений, на которое было повернуто колесо. В дополнение к этому методу, класс MouseWheelEvent предоставляет метод getPreciseWheelRotation(), который возвращает число «нажатий» с плавающей точкой в случае частичного вращения. Метод getPreciseWheelRotation() полезен, если мышь поддерживает колесо с высокой точностью, например, свободно вращающееся колесо без делений. Приложения могут извлечь выгоду из использования этого метода для обработки событий колеса мыши более точно, тем самым, сделав визуальное восприятие плавнее.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
WHEEL_BLOCK_SCROLL |
Константа, представляющая прокрутку по «блоку» (как при прокрутке клавишами Page-Up, Page-Down) |
static final 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 |
Создаёт объект MouseWheelEvent со указанным исходным компонентом, типом, модификаторами, координатами, типом прокрутки, количеством прокрутки и вращением колеса. |
MouseWheelEvent |
Создаёт объект MouseWheelEvent со указанным исходным компонентом, типом, модификаторами, координатами, абсолютными координатами, типом прокрутки, количеством прокрутки и вращением колеса. |
MouseWheelEvent |
Создаёт объект MouseWheelEvent со указанным исходным компонентом, типом, модификаторами, координатами, абсолютными координатами, типом прокрутки, количеством прокрутки и вращением колеса. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
double |
getPreciseWheelRotation() |
Возвращает количество «нажатий» вращения колеса мыши как число с плавающей точкой. |
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, getMaskForButton, getModifiers, getModifiersEx, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
Методы, объявленные в классе java.awt.event.ComponentEvent
getComponent
Методы, объявленные в классе java.util.EventObject
getSource
Подробное описание полей
WHEEL_UNIT_SCROLL
@Native public static final int WHEEL_UNIT_SCROLL
- См. также:
WHEEL_BLOCK_SCROLL
@Native public static final int WHEEL_BLOCK_SCROLL
- См. также:
Подробное описание конструкторов
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, если source равно null.
- Параметры:
-
source- компонент, породивший событие -
id- целое число, идентифицирующее событие -
when- значение типа long, указывающее время наступления события -
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равно null - См. также:
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- компонент, породивший событие -
id- целое число, идентифицирующее событие -
when- значение типа long, указывающее время наступления события -
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равно null - С момента:
- 1.6
- См. также:
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- компонент, породивший событие -
id- целое значение, идентифицирующее событие -
when- значение типа long, указывающее время наступления события -
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равно null - С момента:
- 1.7
- См. также:
Подробное описание методов
getScrollType
public int getScrollType()
- MouseWheelEvent.WHEEL_UNIT_SCROLL
- MouseWheelEvent.WHEEL_BLOCK_SCROLL
- Возвращает:
- либо MouseWheelEvent.WHEEL_UNIT_SCROLL, либо MouseWheelEvent.WHEEL_BLOCK_SCROLL в зависимости от конфигурации нативной платформы.
- См. также:
getScrollAmount
public int getScrollAmount()
getScrollType возвращает MouseWheelEvent.WHEEL_UNIT_SCROLL
- Возвращает:
- количество единиц для прокрутки или неопределённое значение, если
getScrollTypeвозвращаетMouseWheelEvent.WHEEL_BLOCK_SCROLL - См. также:
getWheelRotation
public int getWheelRotation()
- Возвращает:
- отрицательные значения, если колесо мыши вращалось вверх/от пользователя, и положительные значения, если колесо мыши вращалось вниз/к пользователю
- См. также:
getPreciseWheelRotation
public double getPreciseWheelRotation()
- Возвращает:
- отрицательные значения, если колесо мыши вращалось вверх или от пользователя, и положительные значения, если колесо мыши вращалось вниз или к пользователю
- Since:
- 1.7
- См. также:
getUnitsToScroll
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);
}
}
- Возвращает:
- количество единиц прокрутки, основанное на направлении и количестве вращения колеса мыши, а также на настройках прокрутки колеса родной платформы
- См. также:
paramString
public String paramString()
- Overrides:
-
paramStringв классеMouseEvent - Возвращает:
- строку, идентифицирующую событие и его атрибуты
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/event/MouseWheelEvent.html