モジュール javafx.base
パッケージ javafx.event

インタフェースEventDispatcher



  • public interface EventDispatcher
    EventDispatcherは、イベント・ディスパッチおよび処理エンティティを表します。 これは、ターゲットによって指定されたEventDispatchChainを介して、Eventを関連付けられたEventTargetにディスパッチする必要がある場合に使用されます。 チェーン内の各EventDispatcherは、イベント・パスおよびイベント自体に影響を及ぼすことができます。 1つのEventDispatcherが複数のチェーンに出現する場合があります。

    システムではイベント配信の2つの連続したフェーズが定義されます。 最初のフェーズはキャプチャ・フェーズと呼ばれ、イベントがイベント・ターゲットに関連付けられたEventDispatchChainの最初の要素から最後の要素に移動するときに発生します。 イベント・ターゲットが階層の一部である場合、このフェーズのイベントの方向は、通常、階層のルート要素からターゲットへの方向に対応します。 2番目のフェーズはバブリング・フェーズと呼ばれ、最初のフェーズと逆の順序で発生します。 そのため、このフェーズでは、イベントはEventDispatchChainの最後の要素から最初の要素に戻ります。 これは通常、イベント・ターゲットの階層でイベント・ターゲットからルートに戻る方向に対応します。

    EventDispatchChainの各EventDispatcherは、イベントのディスパッチ中にイベントを残りのチェーンに転送します。 この転送はdispatchEventメソッドで発生し、1つのEventDispatcherが両方のディスパッチ・フェーズ中に単一のdispatchEvent呼出しでイベントを参照できるようにする、ネストされた呼出しのチェーンを形成します。

    dispatchEvent実装のテンプレート。

    public Event dispatchEvent(Event event, EventDispatchChain tail) {
        // capturing phase, can handle / modify / substitute / divert the event
    
        if (notHandledYet) {
            // forward the event to the rest of the chain
            event = tail.dispatchEvent(event);
    
            if (event != null) {
                // bubbling phase, can handle / modify / substitute / divert
                // the event
            }
        }
    
        return notHandledYet ? event : null;
    
    }
    導入されたバージョン:
    JavaFX 2.0
    • メソッドの詳細

      • dispatchEvent

        Event dispatchEvent​(Event event,
                            EventDispatchChain tail)
        このEventDispatcherによって指定されたイベントをディスパッチします。 必要なイベント処理を実行します。 イベントとその以降のパスの両方をこのメソッドで変更できます。 キャプチャ・フェーズ中にイベントが処理/消費されない場合、イベントを残りのチェーンにディスパッチする必要があります(event = tail.dispatch(event);)。
        パラメータ:
        event - ディスパッチを実行するイベント
        tail - イベントをディスパッチする残りのチェーン
        戻り値:
        戻りイベント、またはイベントが処理/消費された場合は、null