Zoeken…


Eenvoudig bindend eigendom

JavaFX heeft een bindende API, die manieren biedt om de ene eigenschap aan de andere te binden. Dit betekent dat wanneer de waarde van een eigenschap wordt gewijzigd, de waarde van de gebonden eigenschap automatisch wordt bijgewerkt. Een voorbeeld van eenvoudige binding:

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
}

U kunt ook een primitieve eigenschap binden door een optelling, aftrekking, deling, enz. Toe te passen:

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

Elk object kan in SimpleObjectProperty worden geplaatst:

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

Het is mogelijk om bidirectionele bindingen te maken. In dit geval zijn eigenschappen afhankelijk van elkaar.

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow