バインディング

JavaFX Scriptでは「bind」というキーワードでプロパティのバインドを行うことができる。以下の例ではスライダーの値によって円(Circle)の大きさがリアルタイムに変化する。

バインドの例

var slider:SwingSlider = SwingSlider {
     minimum: 0
     maximum: 100
     value: 3
     vertical: false
}

var circle:Circle = Circle {
    centerX: 100
    centerY: 100
    radius: bind slider.value
    fill: Color.BLACK
}

また、「with inverse」を追加することで双方向のバインドを行うこともできる。以下のコード例では2つのテキストフィールドの内容が双方向に同期される。

var textField1:SwingTextField = SwingTextField {
    columns: 10
}

var textField2:SwingTextField = SwingTextField {
    columns: 10
    text: bind textField1.text with inverse
}

バインド機能は複数のコンポーネントのプロパティを同期させたり、データを保持するモデルと画面に表示するコンポーネントのプロパティを同期させるなど、様々な利用シーンが考えられる。

>> いよいよアニメーション処理へ