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