Класс ScrollEvent
- Все реализованные интерфейсы:
-
Serializable,Cloneable
public final class ScrollEvent extends GestureEvent
Когда прокрутка выполняется с помощью жеста касания (например, перетаскивания пальца по сенсорному экрану), она окружена событиями SCROLL_STARTED и SCROLL_FINISHED. Изменение количества участвующих точек касания во время прокрутки считается новым жестом, поэтому пара уведомлений SCROLL_FINISHED и SCROLL_STARTED доставляется каждый раз, когда меняется touchCount. Когда прокрутка вызвана вращением колесика мыши, доставляется только одно событие SCROLL, без окружающих событий начала/окончания. Если на данной платформе активен инерционный скроллинг, могут последовать некоторые события SCROLL с isInertia(), возвращающим true, после события SCROLL_FINISHED.
Событие доставляется в самый верхний узел, выбранный по координатам жеста в момент начала жеста — весь жест доставляется тому же узлу, даже если координаты изменяются во время жеста. При вращении колесика мыши событие доставляется в самый верхний узел, выбранный по местоположению курсора мыши. Доставка не зависит от текущего владельца фокуса.
Событие предоставляет два различных типа значений прокрутки: основанные на пикселях и на символах/строках. Основные значения deltaX и deltaY дают разумные результаты, когда используются как количество пикселей для прокрутки (totalDeltaX и totalDeltaY содержат кумулятивные значения для всего жеста, нули для колесика мыши). Для прокрутки текста (или другого контента, основанного на строках, например, таблиц) следует использовать значения textDelta, если они доступны. Значения textDeltaXUnits и textDeltaYUnits определяют, как интерпретировать значения textDeltaX и textDeltaY. Если единицы установлены в NONE, значения, основанные на тексте, недоступны (не предоставляются базовой платформой), и необходимо использовать значения, основанные на пикселях.
Как и все жесты, прокрутка может быть прямой (выполняется непосредственно в конкретных координатах, как на сенсорном экране — обычно используется центральная точка между всеми касаниями в качестве координат жеста) или косвенной (выполняется косвенно, как на трекпаде или с помощью мыши — обычно используется местоположение курсора мыши в качестве координат жеста).
Например, прокрутка графического узла может быть достигнута выполнением следующего кода:
node.setOnScroll(new EventHandler<ScrollEvent>() {
@Override public void handle(ScrollEvent event) {
node.setTranslateX(node.getTranslateX() + event.getDeltaX());
node.setTranslateY(node.getTranslateY() + event.getDeltaY());
}
});
Обработчик события прокрутки на текстовом компоненте, работающий в соответствии с системными настройками на всех платформах, должен содержать следующий логический код:
switch(event.getTextDeltaYUnits()) {
case LINES:
// scroll about event.getTextDeltaY() lines
break;
case PAGES:
// scroll about event.getTextDeltaY() pages
break;
case NONE:
// scroll about event.getDeltaY() pixels
break;
}
- С момента:
- JavaFX 2.0
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
ScrollEvent.HorizontalTextScrollUnits |
Горизонтальные текстовые единицы измерения прокрутки. |
static enum |
ScrollEvent.VerticalTextScrollUnits |
Вертикальные текстовые единицы измерения прокрутки. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final EventType |
ANY |
Общий супертип для всех типов событий прокрутки. |
static final EventType |
SCROLL |
Это событие возникает, когда пользователь выполняет действие прокрутки, например, вращая колесико мыши или перетаскивая палец по сенсорному экрану. |
static final EventType |
SCROLL_FINISHED |
Это событие возникает, когда завершается жест прокрутки. |
static final EventType |
SCROLL_STARTED |
Это событие возникает, когда обнаружен жест прокрутки. |
Поля, объявленные в классе javafx.event.Event
consumed, eventType, NULL_SOURCE_TARGET, target
Поля, объявленные в классе java.util.EventObject
source
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ScrollEvent |
Создает новое событие ScrollEvent. |
ScrollEvent |
Создает новое событие ScrollEvent с null источником и целевым объектом. |
ScrollEvent |
Создает новое событие ScrollEvent с null источником и целевым объектом. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ScrollEvent |
copyFor |
Создает и возвращает копию этого события с указанным источником и целевым объектом события. |
ScrollEvent |
copyFor |
Создает копию данного события с подставленными полями. |
double |
getDeltaX() |
Получение горизонтального значения прокрутки. |
double |
getDeltaY() |
Получение вертикального значения прокрутки. |
EventType |
getEventType() |
Получение типа события этого события. |
double |
getMultiplierX() |
Получение множителя, используемого для преобразования единиц вращения колесика мыши в пиксели. |
double |
getMultiplierY() |
Получение множителя, используемого для преобразования единиц вращения колесика мыши в пиксели. |
double |
getTextDeltaX() |
Получение горизонтального значения прокрутки, основанного на тексте. |
ScrollEvent.HorizontalTextScrollUnits |
getTextDeltaXUnits() |
Получение горизонтальных единиц прокрутки для текстовой прокрутки. |
double |
getTextDeltaY() |
Получение вертикального значения прокрутки, основанного на тексте. |
ScrollEvent.VerticalTextScrollUnits |
getTextDeltaYUnits() |
Получение вертикальных единиц прокрутки для текстовой прокрутки. |
double |
getTotalDeltaX() |
Получение кумулятивного горизонтального значения прокрутки для всего жеста. |
double |
getTotalDeltaY() |
Получение кумулятивного вертикального значения прокрутки для всего жеста. |
int |
getTouchCount() |
Получение количества точек касания, вызвавших это событие. |
String |
toString() |
Возвращает строковое представление этого объекта ScrollEvent. |
Методы, объявленные в классе javafx.scene.input.GestureEvent
getPickResult, getSceneX, getSceneY, getScreenX, getScreenY, getX, getY, getZ, isAltDown, isControlDown, isDirect, isInertia, isMetaDown, isShiftDown, isShortcutDown
Методы, объявленные в классе java.util.EventObject
getSource
Подробное описание полей
ANY
public static final EventType<ScrollEvent> ANY
SCROLL
public static final EventType<ScrollEvent> SCROLL
SCROLL_STARTED
public static final EventType<ScrollEvent> SCROLL_STARTED
- С момента:
- JavaFX 2.2
SCROLL_FINISHED
public static final EventType<ScrollEvent> SCROLL_FINISHED
- С момента:
- JavaFX 2.2
Подробное описание конструкторов
ScrollEvent
public ScrollEvent(Object source, EventTarget target, EventType<ScrollEvent> eventType, double x, double y, double screenX, double screenY, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean direct, boolean inertia, double deltaX, double deltaY, double totalDeltaX, double totalDeltaY, ScrollEvent.HorizontalTextScrollUnits textDeltaXUnits, double textDeltaX, ScrollEvent.VerticalTextScrollUnits textDeltaYUnits, double textDeltaY, int touchCount, PickResult pickResult)
- Параметры:
-
source- источник события. Может быть null. -
target- цель события. Может быть null. -
eventType- Тип события. -
x- Координата x относительно сцены. -
y- Координата y относительно сцены. -
screenX- Координата x относительно экрана. -
screenY- Координата y относительно экрана. -
shiftDown- true, если нажата клавиша Shift. -
controlDown- true, если нажата клавиша Ctrl. -
altDown- true, если нажата клавиша Alt. -
metaDown- true, если нажата клавиша Meta. -
direct- true, если событие вызвано прямым устройством ввода. См.GestureEvent.isDirect() -
inertia- указывает, является ли событие результатом инерции уже завершённого жеста. -
deltaX- количество горизонтального скролла -
deltaY- количество вертикального скролла -
totalDeltaX- общее количество горизонтального скролла -
totalDeltaY- общее количество вертикального скролла -
textDeltaXUnits- единицы для горизонтального скролла текста -
textDeltaX- количество горизонтального скролла текста -
textDeltaYUnits- единицы для вертикального скролла текста -
textDeltaY- количество вертикального скролла текста -
touchCount- количество точек касания -
pickResult- результат выбора. Может быть null, в этом случае результат выбора 2D строится на основе координат сцены и цели - С момента:
- JavaFX 8.0
ScrollEvent
public ScrollEvent(EventType<ScrollEvent> eventType, double x, double y, double screenX, double screenY, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean direct, boolean inertia, double deltaX, double deltaY, double totalDeltaX, double totalDeltaY, ScrollEvent.HorizontalTextScrollUnits textDeltaXUnits, double textDeltaX, ScrollEvent.VerticalTextScrollUnits textDeltaYUnits, double textDeltaY, int touchCount, PickResult pickResult)
- Параметры:
-
eventType- тип события. -
x- координата x относительно сцены. -
y- координата y относительно сцены. -
screenX- координата x относительно экрана. -
screenY- координата y относительно экрана. -
shiftDown- true, если нажата клавиша Shift. -
controlDown- true, если нажата клавиша Ctrl. -
altDown- true, если нажата клавиша Alt. -
metaDown- true, если нажата клавиша Meta. -
direct- true, если событие вызвано прямым устройством ввода. См.GestureEvent.isDirect() -
inertia- указывает, является ли событие результатом инерции уже завершённого жеста. -
deltaX- горизонтальное количество прокрутки -
deltaY- вертикальное количество прокрутки -
totalDeltaX- накопленное горизонтальное количество прокрутки -
totalDeltaY- накопленное вертикальное количество прокрутки -
textDeltaXUnits- единицы для горизонтального скролла текста -
textDeltaX- горизонтальное количество прокрутки текста -
textDeltaYUnits- единицы для вертикального скролла текста -
textDeltaY- вертикальное количество прокрутки текста -
touchCount- количество точек касания -
pickResult- результат выбора. Может быть null, в этом случае 2D результат выбора строится на основе координат сцены - С момента:
- JavaFX 8.0
ScrollEvent
public ScrollEvent(EventType<ScrollEvent> eventType, double x, double y, double screenX, double screenY, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean direct, boolean inertia, double deltaX, double deltaY, double totalDeltaX, double totalDeltaY, double multiplierX, double multiplierY, ScrollEvent.HorizontalTextScrollUnits textDeltaXUnits, double textDeltaX, ScrollEvent.VerticalTextScrollUnits textDeltaYUnits, double textDeltaY, int touchCount, PickResult pickResult)
- Параметры:
-
eventType- тип события. -
x- координата x относительно сцены. -
y- координата y относительно сцены. -
screenX- координата x относительно экрана. -
screenY- координата y относительно экрана. -
shiftDown- true, если нажата клавиша Shift. -
controlDown- true, если нажата клавиша Ctrl. -
altDown- true, если нажата клавиша Alt. -
metaDown- true, если нажата клавиша Meta. -
direct- true, если событие вызвано прямым устройством ввода. См.GestureEvent.isDirect() -
inertia- указывает, является ли событие результатом инерции уже завершённого жеста. -
deltaX- горизонтальное количество прокрутки -
deltaY- вертикальное количество прокрутки -
totalDeltaX- накопленное горизонтальное количество прокрутки -
totalDeltaY- накопленное вертикальное количество прокрутки -
multiplierX- множитель X для преобразования вращений колеса в пиксели -
multiplierY- множитель Y для преобразования вращений колеса в пиксели -
textDeltaXUnits- единицы для горизонтального скролла текста -
textDeltaX- горизонтальное количество прокрутки текста -
textDeltaYUnits- единицы для вертикального скролла текста -
textDeltaY- вертикальное количество прокрутки текста -
touchCount- количество точек касания -
pickResult- результат выбора. Может быть null, в этом случае 2D результат выбора строится на основе координат сцены - С момента:
- JavaFX 8.0
Подробное описание методов
getDeltaX
public double getDeltaX()
textDeltaX и textDeltaXUnits следует рассматривать в первую очередь. Знак значения инвертирован по сравнению с системой координат (при прокрутке вправо, содержимое фактически должно смещаться влево). Таким образом, возвращаемое значение можно просто добавить к координате X содержимого.
- Возвращает:
- Количество пикселей для горизонтального скролла
getDeltaY
public double getDeltaY()
textDeltaY и textDeltaYUnits следует рассматривать в первую очередь. Знак значения инвертирован по сравнению с системой координат (при прокрутке вниз, содержимое фактически должно смещаться вверх). Таким образом, возвращаемое значение можно просто добавить к координате Y содержимого.
- Возвращает:
- Количество пикселей для вертикального скролла
getTotalDeltaX
public double getTotalDeltaX()
Знак значения инвертирован по сравнению с системой координат (при прокрутке вправо, содержимое фактически должно смещаться влево). Таким образом, возвращаемое значение можно просто добавить к координате X содержимого.
- Возвращает:
- Количество пикселей горизонтального скролла во время жеста
- С момента:
- JavaFX 2.2
getTotalDeltaY
public double getTotalDeltaY()
Знак значения инвертирован по сравнению с системой координат (при прокрутке вниз, содержимое фактически должно смещаться вверх). Таким образом, возвращаемое значение можно просто добавить к координате Y содержимого.
- Возвращает:
- Количество пикселей вертикального скролла во время жеста
- С момента:
- JavaFX 2.2
getTextDeltaXUnits
public ScrollEvent.HorizontalTextScrollUnits getTextDeltaXUnits()
getTextDeltaX(). Если возвращаемое значение равно NONE, значение прокрутки текста недоступно, и необходимо использовать значение в пикселях getDeltaX().- Возвращает:
- горизонтальные единицы прокрутки для прокрутки текста
getTextDeltaYUnits
public ScrollEvent.VerticalTextScrollUnits getTextDeltaYUnits()
getTextDeltaY(). Если возвращаемое значение равно NONE, значение прокрутки текста недоступно, и необходимо использовать значение в пикселях getDeltaY().- Возвращает:
- вертикальные единицы прокрутки для прокрутки текста
getTextDeltaX
public double getTextDeltaX()
getTextDeltaXUnits().- Возвращает:
- Количество единиц для горизонтальной прокрутки, ноль, если данные для горизонтальной прокрутки на основе текста недоступны
getTextDeltaXUnits()возвращаетNONE
getTextDeltaY
public double getTextDeltaY()
getTextDeltaYUnits().- Возвращает:
- Количество единиц для вертикальной прокрутки, ноль, если данные для вертикальной прокрутки на основе текста недоступны
getTextDeltaYUnits()возвращаетNONE
getTouchCount
public int getTouchCount()
- Возвращает:
- Количество точек касания, которые вызвали это событие
- Since:
- JavaFX 2.2
getMultiplierX
public double getMultiplierX()
- Возвращает:
- множитель x
- Since:
- JavaFX 8.0
getMultiplierY
public double getMultiplierY()
- Возвращает:
- множитель y
- Since:
- JavaFX 8.0
toString
public String toString()
ScrollEvent.- Overrides:
-
toStringв классеGestureEvent - Возвращает:
- строковое представление этого объекта
ScrollEvent.
copyFor
public ScrollEvent copyFor(Object newSource, EventTarget newTarget)
GestureEventnull, они заменяются значением NULL_SOURCE_TARGET.copyFor
public ScrollEvent copyFor(Object newSource, EventTarget newTarget, EventType<ScrollEvent> type)
- Параметры:
-
newSource- новый источник скопированного события -
newTarget- новая целевая точка скопированного события -
type- новый тип события - Возвращает:
- копию события с подставленными полями
- Since:
- JavaFX 8.0
getEventType
public EventType<ScrollEvent> getEventType()
EventEvent могут иметь разные типы событий. Эти типы событий дополнительно уточняют, какое событие произошло.- Overrides:
-
getEventTypeв классеEvent - Возвращает:
- тип события
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.