モジュール javafx.graphics
パッケージ javafx.scene.input

クラスScrollEvent

  • すべての実装されたインタフェース:
    Serializable, Cloneable


    public final class ScrollEvent
    extends GestureEvent
    スクロール・イベントは、ユーザーがマウス・ホイール、トラック・パッド、タッチ画面または他の同様のデバイスによってスクロールを実行したことを示します。

    タッチ・ジェスチャ(タッチ画面上で指をドラッグするなど)によって生成されたスクロールはSCROLL_STARTEDイベントとSCROLL_FINISHEDイベントに囲まれます。 スクロール中に関連タッチ・ポイントの数が変化すると、新しいジェスチャとみなされるため、touchCountが変化するたびに、SCROLL_FINISHED通知とSCROLL_STARTED通知のペアが配信されます。 マウス・ホイールを回転してスクロールした場合、始点/終点の囲みなしに、1回かぎりのSCROLLイベントのみが配信されます。 該当するプラットフォームでスクロール慣性がアクティブになっている場合、isInertia()trueが返されたSCROLLイベントがSCROLL_FINISHEDより後になることがあります。

    イベントは、ジェスチャの開始時にジェスチャ座標で選択された最上位ノードに配信されます。ジェスチャ時に座標が変更された場合でも、ジェスチャ全体が同じノードに配信されます。 マウス・ホイールの回転の場合、マウス・カーソルの位置で選択された最上位ノードにイベントが配信されます。 配信は現在のフォーカス所有者には依存しません。

    イベントによって、2つの異なるタイプのスクロール値(ピクセルベースと文字/行ベース)が提供されます。 スクロールするピクセル数として基本的な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
    関連項目:
    直列化された形式
    • フィールドの詳細

      • 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に設定できます。
        target - イベントのターゲット。 nullに設定できます。
        eventType - イベントのタイプ。
        x - シーンに関連するx。
        y - シーンに関連するy。
        screenX - 画面に対して相対的なx座標。
        screenY - 画面に対して相対的なy座標。
        shiftDown - Shift修飾子が押された場合はtrueです。
        controlDown - Ctrl修飾子が押された場合はtrueです。
        altDown - Alt修飾子が押された場合はtrueです。
        metaDown - Meta修飾子が押された場合はtrueです。
        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)
        nullのソースとターゲットを使用した新しいScrollEventイベントを構築します。
        パラメータ:
        eventType - イベントのタイプ。
        x - シーンに関連するx。
        y - シーンに関連するy。
        screenX - 画面に対して相対的なx座標。
        screenY - 画面に対して相対的なy座標。
        shiftDown - Shift修飾子が押された場合はtrueです。
        controlDown - Ctrl修飾子が押された場合はtrueです。
        altDown - Alt修飾子が押された場合はtrueです。
        metaDown - Meta修飾子が押された場合はtrueです。
        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)
        nullのソースとターゲットを使用した新しいScrollEventイベントを構築します。
        パラメータ:
        eventType - イベントのタイプ。
        x - シーンに関連するx。
        y - シーンに関連するy。
        screenX - 画面に対して相対的なx座標。
        screenY - 画面に対して相対的なy座標。
        shiftDown - Shift修飾子が押された場合はtrueです。
        controlDown - Ctrl修飾子が押された場合はtrueです。
        altDown - Alt修飾子が押された場合はtrueです。
        metaDown - Meta修飾子が押された場合はtrueです。
        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​()
        このイベントを発生させたタッチ・ポイントの数を取得します。 マウス・ホイールのようなタッチ・ソース・デバイス以外の場合、およびジェスチャ終了後に慣性イベントが発生する場合は、ゼロが返されます。
        戻り値:
        このイベントを発生させたタッチ・ポイントの数
        導入されたバージョン:
        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)
        クラスからコピーされた説明:GestureEvent
        指定したイベント・ソースとターゲットを持つこのイベントのコピーを作成して返します。 ソースまたはターゲットがnullに設定されている場合は、NULL_SOURCE_TARGET値によって置換されます。
        オーバーライド:
        copyFor 、クラス: GestureEvent
        パラメータ:
        newSource - コピーされたイベントの新しいソース
        newTarget - コピーされたイベントの新しいターゲット
        戻り値:
        新しいソースとターゲットを含むイベント・コピー
      • copyFor

        public ScrollEvent copyFor​(Object newSource,
                                   EventTarget newTarget,
                                   EventType<ScrollEvent> type)
        指定のフィールドが置換された特定のイベントのコピーを作成します。
        パラメータ:
        newSource - コピーされたイベントの新しいソース
        newTarget - コピーされたイベントの新しいターゲット
        type - 新しいeventType
        戻り値:
        フィールドが置換されたイベント・コピー
        導入されたバージョン:
        JavaFX 8.0
      • getEventType

        public EventType<ScrollEvent> getEventType​()
        クラスからコピーされた説明: Event
        このイベントのイベント・タイプを取得します。 同じEventクラスの複数のオブジェクトは、異なるイベント・タイプを持つことができます。 これらのイベント・タイプでは、発生するイベントの種類をさらに指定します。
        オーバーライド:
        getEventType 、クラス: GestureEvent
        戻り値:
        イベント・タイプ