簡單的屬性繫結
JavaFX 有一個繫結 API,它提供了將一個屬性繫結到另一個屬性的方法。這意味著每當更改一個屬性的值時,繫結屬性的值將自動更新。簡單繫結的一個例子:
SimpleIntegerProperty first =new SimpleIntegerProperty(5); //create a property with value=5
SimpleIntegerProperty second=new SimpleIntegerProperty();
public void test()
{
System.out.println(second.get()); // '0'
second.bind(first); //bind second property to first
System.out.println(second.get()); // '5'
first.set(16); //set first property's value
System.out.println(second.get()); // '16' - the value was automatically updated
}
你還可以通過應用加法,減法,除法等來繫結基本屬性:
public void test2()
{
second.bind(first.add(100));
System.out.println(second.get()); //'105'
second.bind(first.subtract(50));
System.out.println(second.get()); //'-45'
}
任何 Object 都可以放入 SimpleObjectProperty:
SimpleObjectProperty<Color> color=new SimpleObjectProperty<>(Color.web("45f3d1"));
可以建立雙向繫結。在這種情況下,屬性相互依賴。
public void test3()
{
second.bindBidirectional(first);
System.out.println(second.get()+" "+first.get());
second.set(1000);
System.out.println(second.get()+" "+first.get()); //both are '1000'
}