Suche…


Einfache Eigenschaftsbindung

JavaFX verfügt über eine Bindungs-API, über die eine Eigenschaft an die andere gebunden werden kann. Das bedeutet, dass bei jeder Änderung eines Eigenschaftswerts der Wert der gebundenen Eigenschaft automatisch aktualisiert wird. Ein Beispiel für die einfache Bindung:

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
}

Sie können eine primitive Eigenschaft auch binden, indem Sie eine Addition, eine Subtraktion, eine Division usw. anwenden:

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

Jedes Objekt kann in SimpleObjectProperty abgelegt werden:

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

Es ist möglich, bidirektionale Bindungen zu erstellen. In diesem Fall hängen die Eigenschaften voneinander ab.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow