ナビゲーション・リンクをスキップ
JavaFX 8

パッケージjavafx.beans.binding

Bindingsの特性

参照: 説明

パッケージjavafx.beans.bindingの説明

Bindingsの特性

バインディングは1つ以上のソースからアセンブルされ、通常バインディングの依存性と呼ばれます。バインディングは、変更の依存性を監視し、依存性の変更に従って固有の値を更新します。

このライブラリで定義されたほとんどすべてのバインディングは、依存性にObservableの実装が必要です。パッケージjavafx.beans.propertyのプロパティと監視可能なコレクション(ObservableListおよびObservableMap)で2つのタイプの実装がすでに用意されています。バインディングはObservableも実装し、簡単なバインディングから非常に複雑なバインディングに至るまで他のバインディングを構築できるソースとしても役立ちます。

実装のバインディングは、常に遅延して計算されます。つまり、依存性が変更されると、バインディングの結果がすぐに再計算されず、無効とマークされます。次に無効なバインディングの値をリクエストする場合に計算されます。

上位レベルAPIおよび下位レベルAPI

バインディングAPIは、上位バインディングAPIと下位バインディングAPIの2つの部分に大別されます。上位バインディングAPIでは、使いやすい形式で簡単なバインディングを構築できます。上位レベルAPIを使用したバインディングの定義は、特にコード完了を提供するIDEで使用する場合に容易です。ただし制限があり、その点で下位APIも役立ちます。経験を積んだJava開発者は、上位レベルAPIの機能が十分でない場合、またはパフォーマンスを向上するために、下位レベルAPIを使用してバインディングを定義できます。下位APIの主な目標は、高速な実行と小さいメモリー・フットプリントです。

両方のAPIの使用方法の例は、次のとおりです。DoubleProperty abcおよびdの4つのインスタンスを持つ場合、次の例のように上位レベルAPIを使用してa*b + c*dを計算するバインディングを定義できます。

NumberBinding result = Bindings.add (a.multiply(b), c.multiply(d));

下位レベルAPIを使用した同じバインディングの定義は、次のように実行できます。


DoubleBinding foo = new DoubleBinding() {

    {
        super.bind(a, b, c, d);
    }

    @Override
    protected double computeValue() {
        return a.getValue() * b.getValue() + c.getValue() * d.getValue();
    }
};

ナビゲーション・リンクをスキップ
JavaFX 8

Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.