Класс ScrollEvent
- java.util.EventObject
-
- javafx.event.Event
-
- javafx.scene.input.InputEvent
-
- javafx.scene.input.GestureEvent
-
- javafx.scene.input.ScrollEvent
Все реализованные интерфейсы:
public final class ScrollEvent extends GestureEvent
При прокрутке, вызванной жестом касания (например, при перетаскивании пальца по сенсорному экрану), оно окружено событиями SCROLL_STARTED и SCROLL_FINISHED. Изменение количества участвующих точек касания во время прокрутки считается новым жестом, поэтому пары уведомлений SCROLL_FINISHED и SCROLL_STARTED доставляются каждый раз при изменении количества точек касания touchCount. При прокрутке, вызванной вращением колеса мыши, доставляется только одно событие SCROLL без начальных/заключительных событий. Если на данной платформе активна инерция прокрутки, после события SCROLL_FINISHED могут появиться некоторые события SCROLL с isInertia(), возвращающие значение true.
Событие доставляется в самый верхний узел, выбранный по координатам жеста в момент начала жеста — весь жест доставляется одному и тому же узлу, даже если координаты меняются во время жеста. Для вращения колеса мыши событие доставляется в самый верхний узел, выбранный по местоположению курсора мыши. Доставка не зависит от текущего владельца фокуса.
Событие предоставляет два разных типа значений прокрутки: основанные на пикселях и на символах/строках. Значения, основанные на пикселях, deltaX и deltaY, дают разумные результаты при использовании в качестве количества пикселей для прокрутки (totalDeltaX и totalDeltaY содержат кумулятивные значения для всего жеста, нули для колеса мыши). Для прокрутки текста (или другого содержимого, основанного на строках, например, таблиц) следует использовать значения textDelta, если они доступны. Значения textDeltaXUnits и textDeltaYUnits определяют способ интерпретации значений textDeltaX и textDeltaY. Если единицы установлены в NONE, значения, основанные на тексте, недоступны (не предоставляются базовой платформой), и необходимо использовать значения, основанные на пикселях.
Как и все жесты, прокрутка может быть прямой (выполняется непосредственно по конкретным координатам, как на сенсорном экране — обычно используется центральная точка среди всех точек касания в качестве координат жеста) или косвенной (выполняется косвенно, как на трекпаде или с помощью мыши — обычно используется местоположение курсора мыши в качестве координат жеста).
Например, прокрутка графического узла может быть достигнута с помощью следующего кода: node.setOnScroll(new EventHandler() {
@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 classScrollEvent.HorizontalTextScrollUnitsГоризонтальные текстовые единицы прокрутки.static classScrollEvent.VerticalTextScrollUnitsВертикальные текстовые единицы прокрутки.
-
Краткое описание полей
Поля Модификатор и тип Поле и описание static EventType<ScrollEvent>ANYОбщий супертип для всех типов событий прокрутки.static EventType<ScrollEvent>SCROLLЭто событие возникает, когда пользователь выполняет действие прокрутки, такое как вращение колеса мыши или перетаскивание пальца по сенсорному экрану.static EventType<ScrollEvent>SCROLL_FINISHEDЭто событие возникает, когда заканчивается жест прокрутки.static EventType<ScrollEvent>SCROLL_STARTEDЭто событие возникает, когда обнаруживается жест прокрутки.-
Поля, унаследованные от класса javafx.event.Event
consumed, eventType, NULL_SOURCE_TARGET, target
-
Поля, унаследованные от класса java.util.EventObject
source
-
-
Краткое описание конструкторов
Конструкторы Конструктор и описание 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)Создаёт новое событие ScrollEvent с null исходным и целевым объектами.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)Создаёт новое событие ScrollEvent с null исходным и целевым объектами.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)Создаёт новое событие ScrollEvent.
-
Краткое описание методов
Все методыМетоды экземпляраКонкретные методы Модификатор и тип Метод и описание ScrollEventcopyFor(Object newSource, EventTarget newTarget)Создаёт и возвращает копию этого события с указанным источником и целевым объектом события.ScrollEventcopyFor(Object newSource, EventTarget newTarget, EventType<ScrollEvent> type)Создаёт копию заданного события с заменой заданных полей.doublegetDeltaX()Возвращает горизонтальное смещение прокрутки.doublegetDeltaY()Возвращает вертикальное смещение прокрутки.EventType<ScrollEvent>getEventType()Возвращает тип события.doublegetMultiplierX()Возвращает множитель для преобразования единиц поворота колеса мыши в пиксели.doublegetMultiplierY()Возвращает множитель для преобразования единиц поворота колеса мыши в пиксели.doublegetTextDeltaX()Возвращает горизонтальное смещение прокрутки для текстовой прокрутки.ScrollEvent.HorizontalTextScrollUnitsgetTextDeltaXUnits()Возвращает горизонтальные единицы прокрутки для текстовой прокрутки.doublegetTextDeltaY()Возвращает вертикальное смещение прокрутки для текстовой прокрутки.ScrollEvent.VerticalTextScrollUnitsgetTextDeltaYUnits()Возвращает вертикальные единицы прокрутки для текстовой прокрутки.doublegetTotalDeltaX()Возвращает общее горизонтальное смещение прокрутки для всего жеста.doublegetTotalDeltaY()Возвращает общее вертикальное смещение прокрутки для всего жеста.intgetTouchCount()Возвращает количество точек касания, вызвавших это событие.StringtoString()Возвращает строковое представление этого объектаScrollEvent.-
Методы, унаследованные от класса javafx.scene.input.GestureEvent
getPickResult, getSceneX, getSceneY, getScreenX, getScreenY, getX, getY, getZ, isAltDown, isControlDown, isDirect, isInertia, isMetaDown, isShiftDown, isShortcutDown
-
Методы, унаследованные от класса javafx.event.Event
clone, consume, fireEvent, getTarget, isConsumed
-
Методы, унаследованные от класса 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)Создает новое событие ScrollEvent.Параметры:
source- источник события. Может быть null.С тех пор:
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)Создает новое событие ScrollEvent с null-источником и целевым объектом.Параметры:
eventType- Тип события.С тех пор:
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)Создает новое событие ScrollEvent с null-источником и целевым объектом.Параметры:
eventType- Тип события.С тех пор:
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()
Получает количество точек касания, вызвавших это событие. Для устройств, не использующих сенсорные экраны (таких как мышь), и для событий инерции после завершения жеста возвращает ноль.Возвращает:
Количество точек касания, вызвавших это событие
С тех пор:
JavaFX 2.2
-
getMultiplierX
public double getMultiplierX()
Получает множитель, используемый для преобразования единиц вращения колесика мыши в пикселиВозвращает:
множитель x
С тех пор:
JavaFX 8.0
-
getMultiplierY
public double getMultiplierY()
Получает множитель, используемый для преобразования единиц вращения колесика мыши в пикселиВозвращает:
множитель y
С тех пор:
JavaFX 8.0
-
toString
public String toString()
Возвращает строковое представление этого объектаScrollEvent.Переопределяет:
toStringв классеGestureEventВозвращает:
строковое представление этого объекта
ScrollEvent.
-
copyFor
public ScrollEvent copyFor(Object newSource, EventTarget newTarget)Описание скопировано из класса:EventСоздает и возвращает копию этого события с указанным источником и целевым объектом события. Если источник или целевой объект установлены в значениеnull, они заменяются значениемNULL_SOURCE_TARGET.Переопределяет:
copyForв классеGestureEventПараметры:
newSource- новый источник скопированного событияВозвращает:
копию события с новым источником и целевым объектом
-
copyFor
public ScrollEvent copyFor(Object newSource, EventTarget newTarget, EventType<ScrollEvent> type)Создает копию данного события с подставленными значениями полей.Параметры:
source- новый источник скопированного событияВозвращает:
копию события с подставленными значениями полей
С тех пор:
JavaFX 8.0
-
getEventType
public EventType<ScrollEvent> getEventType()
Описание скопировано из класса:EventПолучает тип события этого события. Объекты одного и того же классаEventмогут иметь разные типы событий. Эти типы событий дополнительно указывают, какое событие произошло.Переопределяет:
getEventTypeв классеGestureEventВозвращает:
тип события
-
© 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.