Класс 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;
}
- C момента:
- JavaFX 2.0
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
ScrollEvent.HorizontalTextScrollUnits |
Горизонтальные текстовые единицы прокрутки. |
static enum |
ScrollEvent.VerticalTextScrollUnits |
Вертикальные текстовые единицы прокрутки. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final EventType<ScrollEvent> |
ANY |
Общий супертип для всех типов событий прокрутки. |
static final EventType<ScrollEvent> |
SCROLL |
Это событие возникает, когда пользователь выполняет действие прокрутки, такое как вращение колесика мыши или перетаскивание пальца по сенсорному экрану. |
static final EventType<ScrollEvent> |
SCROLL_FINISHED |
Это событие возникает, когда заканчивается жест прокрутки. |
static final EventType<ScrollEvent> |
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<ScrollEvent> |
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
- Since:
- JavaFX 2.2
SCROLL_FINISHED
public static final EventType<ScrollEvent> SCROLL_FINISHED
- Since:
- 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)
- Parameters:
-
source- источник события. Может быть null. -
target- целевой объект события. Может быть null. -
eventType- Тип события. -
x- Координата x относительно сцены. -
y- Координата y относительно сцены. -
screenX- Координата x относительно экрана. -
screenY- Координата y относительно экрана. -
shiftDown- true, если была нажата клавиша Shift. -
controlDown- true, если была нажата клавиша Control. -
altDown- true, если была нажата клавиша Alt. -
metaDown- true, если была нажата клавиша Meta. -
direct- true, если событие вызвано прямым устройством ввода. См.GestureEvent.isDirect() -
inertia- если отражает инерцию уже завершенного жеста. -
deltaX- горизонтальное смещение прокрутки -
deltaY- вертикальное смещение прокрутки -
totalDeltaX- совокупное горизонтальное смещение прокрутки -
totalDeltaY- совокупное вертикальное смещение прокрутки -
textDeltaXUnits- единицы измерения горизонтального смещения прокрутки текста -
textDeltaX- горизонтальное смещение прокрутки текста -
textDeltaYUnits- единицы измерения вертикального смещения прокрутки текста -
textDeltaY- вертикальное смещение прокрутки текста -
touchCount- количество точек касания -
pickResult- результат выделения. Может быть null; в этом случае строится результат выделения 2D без дополнительных значений на основе координат сцены и целевого объекта - Since:
- 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)
- Parameters:
-
eventType- Тип события. -
x- Координата x относительно сцены. -
y- Координата y относительно сцены. -
screenX- Координата x относительно экрана. -
screenY- Координата y относительно экрана. -
shiftDown- true, если была нажата клавиша Shift. -
controlDown- true, если была нажата клавиша Control. -
altDown- true, если была нажата клавиша Alt. -
metaDown- true, если была нажата клавиша Meta. -
direct- true, если событие вызвано прямым устройством ввода. См.GestureEvent.isDirect() -
inertia- если отражает инерцию уже завершенного жеста. -
deltaX- горизонтальное смещение прокрутки -
deltaY- вертикальное смещение прокрутки -
totalDeltaX- совокупное горизонтальное смещение прокрутки -
totalDeltaY- совокупное вертикальное смещение прокрутки -
textDeltaXUnits- единицы измерения горизонтального смещения прокрутки текста -
textDeltaX- горизонтальное смещение прокрутки текста -
textDeltaYUnits- единицы измерения вертикального смещения прокрутки текста -
textDeltaY- вертикальное смещение прокрутки текста -
touchCount- количество точек касания -
pickResult- результат выделения. Может быть null; в этом случае строится результат выделения 2D без дополнительных значений на основе координат сцены - Since:
- 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)
- Parameters:
-
eventType- Тип события. -
x- Координата x относительно сцены. -
y- Координата y относительно сцены. -
screenX- Координата x относительно экрана. -
screenY- Координата y относительно экрана. -
shiftDown- true, если была нажата клавиша Shift. -
controlDown- true, если была нажата клавиша Control. -
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 без дополнительных значений на основе координат сцены - Since:
- JavaFX 8.0
Подробное описание методов
getDeltaX
public double getDeltaX()
textDeltaX и textDeltaXUnits должны рассматриваться в первую очередь. Знак значения инвертирован по сравнению с системой координат (при прокрутке вправо, контент фактически должен сместиться влево). Поэтому возвращаемое значение можно просто добавить к координате контента X.
- Returns:
- Количество пикселей для горизонтальной прокрутки
getDeltaY
public double getDeltaY()
textDeltaY и textDeltaYUnits должны рассматриваться в первую очередь. Знак значения инвертирован по сравнению с системой координат (при прокрутке вниз, контент фактически должен сместиться вверх). Поэтому возвращаемое значение можно просто добавить к координате контента Y.
- Returns:
- Количество пикселей для вертикальной прокрутки
getTotalDeltaX
public double getTotalDeltaX()
Знак значения инвертирован по сравнению с системой координат (при прокрутке вправо, контент фактически должен сместиться влево). Поэтому возвращаемое значение можно просто добавить к координате контента X.
- Returns:
- Количество пикселей, прокрученных горизонтально во время жеста
- Since:
- JavaFX 2.2
getTotalDeltaY
public double getTotalDeltaY()
Знак значения инвертирован по сравнению с системой координат (при прокрутке вниз, контент фактически должен сместиться вверх). Поэтому возвращаемое значение можно просто добавить к координате контента Y.
- Returns:
- Количество пикселей, прокрученных вертикально во время жеста
- Since:
- JavaFX 2.2
getTextDeltaXUnits
public ScrollEvent.HorizontalTextScrollUnits getTextDeltaXUnits()
getTextDeltaX(). Если возвращаемое значение равно NONE, значение для прокрутки текста недоступно, и нужно использовать значение в пикселях getDeltaX().- Returns:
- единицы измерения горизонтальной прокрутки текста
getTextDeltaYUnits
public ScrollEvent.VerticalTextScrollUnits getTextDeltaYUnits()
getTextDeltaY(). Если возвращаемое значение равно NONE, значение прокрутки текста недоступно, и необходимо использовать значение в пикселях getDeltaY().- Returns:
- вертикальные единицы прокрутки для прокрутки текста
getTextDeltaX
public double getTextDeltaX()
getTextDeltaXUnits().- Returns:
- Количество единиц горизонтальной прокрутки, ноль, если данные о горизонтальной прокрутке текста недоступны
getTextDeltaXUnits()возвращаетNONE
getTextDeltaY
public double getTextDeltaY()
getTextDeltaYUnits().- Returns:
- Количество единиц вертикальной прокрутки, ноль, если данные о вертикальной прокрутке текста недоступны
getTextDeltaYUnits()возвращаетNONE
getTouchCount
public int getTouchCount()
- Returns:
- Количество точек касания, которые вызвали это событие
- Since:
- JavaFX 2.2
getMultiplierX
public double getMultiplierX()
- Returns:
- множитель x
- Since:
- JavaFX 8.0
getMultiplierY
public double getMultiplierY()
- Returns:
- множитель y
- Since:
- JavaFX 8.0
toString
public String toString()
ScrollEvent объекта.- Overrides:
-
toStringв классеGestureEvent - Returns:
- строковое представление этого
ScrollEventобъекта.
copyFor
public ScrollEvent copyFor(Object newSource, EventTarget newTarget)
Eventnull, он заменяется значением NULL_SOURCE_TARGET.- Overrides:
-
copyForв классеEvent - Parameters:
-
newSource- новый источник скопированного события -
newTarget- новый целевой объект скопированного события - Returns:
- копия события с новым источником и целевым объектом
copyFor
public ScrollEvent copyFor(Object newSource, EventTarget newTarget, EventType<ScrollEvent> type)
- Parameters:
-
newSource- новый источник скопированного события -
newTarget- новый целевой объект скопированного события -
type- новый тип события - Returns:
- копия события с подставленными полями
- Since:
- JavaFX 8.0
getEventType
public EventType<ScrollEvent> getEventType()
EventEvent могут иметь разные типы событий. Эти типы событий дополнительно указывают, какой тип события произошел.- Overrides:
-
getEventTypeв классеEvent - Returns:
- тип события
© 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.