2017-02-11 2 views
0

Considérons les instances d'une classe Wrapper. La classe Wrapper a les instances ListProperty de ClassA et les instants ListProperty de ClassB.JavaFX: notification ListProperty et membres

public class Wrapper { 
    private ListProperty<ClassA> aClasses; 
    private ListProperty<ClassB> bClasses; 

    public ListProperty<ClassA> aClassesProperty() { return aClasses; } 
    public ListProperty<ClassB> bClassesProperty() { return bClasses; } 

    // Methods… 
} 

Les instances de ClassA et ClassB ont besoin de savoir si elles sont incluses dans certains Wrapper. Ils peuvent être inclus seulement dans un Wrapper ou ne pas être inclus du tout.

public class ClassA { // Similarly ClassB 
    private Wrapper owner; 
} 

Certains procédé de l'Wrapper peut enlever membre de l'un des ListProperties. Je me demande si JavaFX a un mécanisme automatique pour notifier un membre enlevé d'un ListProperty? Un mécanisme de liaison entre ListProperty de Wrapper et owner de ClassA/ClassB?

Répondre

0

Vous pouvez aller de cette façon si vous êtes Wrapper class:

aClasses.getValue().addListener(
       (ListChangeListener<ClassA>)event-> { 
        if (event.next()) { 
         if (event.wasAdded()) { 

         } else if (event.wasRemoved()) { 

         } 
        } 
       } 
     ); 

Ou changer pour: owner.aClassesProperty().getValue().addListener( si vous êtes ClassA/B

Mais pour JavaFX il y a: FXCollections.observableList() dédié aux auditeurs sur la liste, en savoir plus https://docs.oracle.com/javafx/2/collections/jfxpub-collections.htm à la demi-page et ici https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ObservableList.html