Sök…


Enkel fastighetsbindning

JavaFX har ett bindande API, som ger sätt att binda en egenskap till den andra. Detta innebär att när en fastighets värde ändras uppdateras värdet på den bundna egenskapen automatiskt. Ett exempel på enkel bindning:

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
}

Du kan också binda en primitiv egenskap genom att tillämpa ett tillägg, subtraktion, delning osv:

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'
}

Alla objekt kan läggas in i SimpleObjectProperty:

SimpleObjectProperty<Color> color=new SimpleObjectProperty<>(Color.web("45f3d1"));

Det är möjligt att skapa dubbelriktade bindningar. I detta fall beror egenskaperna på varandra.

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'
}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow