パッケージ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項式を計算するバインディングの開始ポイント。