パッケージjavafx.beans.binding
1つまたは複数のソースに依存する値を計算する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 a、b、 c、およびdの4つのインスタンスがあると仮定して、a*b + c*dを高レベルAPIで計算するバインディングを定義できます:
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();
}
};
-
インタフェースのサマリー インタフェース 説明 Binding<T> Bindingは、1つ以上のソースに依存する値を計算します。NumberBinding 数値をラップするすべてのバインディングをマークするタグ付けインタフェース。NumberExpression NumberExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableNumberValueです。 -
クラスのサマリー クラス 説明 Bindings Bindingsは、簡単なバインディングを作成するために多くのユーティリティ関数を使用したヘルパー・クラスです。BooleanBinding boolean値のBindingを実装するために必要なほとんどの機能を提供するベース・クラス。BooleanExpression BooleanExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableBooleanValueです。DoubleBinding double値のBindingを実装するために必要なほとんどの機能を提供するベース・クラス。DoubleExpression DoubleExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableDoubleValueです。FloatBinding float値のBindingを実装するために必要なほとんどの機能を提供するベース・クラス。FloatExpression FloatExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableFloatValueです。IntegerBinding int値のBindingを実装するために必要なほとんどの機能を提供するベース・クラス。IntegerExpression IntegerExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableIntegerValueです。ListBinding<E> ObservableListのBindingを実装するために必要なほとんどの機能を提供するベース・クラス。ListExpression<E> ListExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableListValueです。LongBinding long値のBindingを実装するために必要なほとんどの機能を提供するベース・クラス。LongExpression LongExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableLongValueです。MapBinding<K,V> ObservableMapのBindingを実装するために必要なほとんどの機能を提供するベース・クラス。MapExpression<K,V> MapExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableMapValueです。NumberExpressionBase NumberExpressionBaseには、すべてのNumberExpressionサブクラスに共通する、流暢なスタイルでバインディングを生成するための簡易なメソッドが含まれています。ObjectBinding<T> ObjectのBindingを実装するために必要なほとんどの機能を提供するベース・クラス。ObjectExpression<T> ObjectExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableObjectValueです。SetBinding<E> ObservableSetのBindingを実装するために必要なほとんどの機能を提供するベース・クラス。SetExpression<E> SetExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableSetValueです。StringBinding StringのBindingを実装するために必要なほとんどの機能を提供するベース・クラス。StringExpression StringExpressionは、流暢なスタイルでバインディングを生成する追加の簡易なメソッドであるObservableStringValueです。When 3項式を計算するバインディングの開始ポイント。