javafx tableview détecter tout changement sur l'une des lignes dont l'ajout d'un nouveau
parce que je ne sais pas vraiment la solution.
Disons que j'ai un TableView qui est titulaire d'infos sur le produit: description, la quantité et le prix. Ont aussi une étiquette qui montre une somme de prix (à la fois la quantité) de tous les produits à partir d'une table. Maintenant, je veux être informé de tous les changements qui ont eu d'effet sur cette composante comme des changements dans les lignes existantes, ou l'ajout d'un nouveau. Est-il un auditeur ou qqch de similaire pour l'atteindre?
table.getItems().addListener(...)
?OriginalL'auteur sw1 | 2014-01-14
Vous devez vous connecter pour publier un commentaire.
Généralement de vous construire une TableView par le passage d'un ObservableList. Quelque chose comme ceci:
TableView matable = new TableView<>(myObservableList);
Vous pouvez ajouter un ListChangeListener à tout ObservableList à volonté en faisant:
Autant que je sache, cette méthode ne semble pas réagir aux changements internes des éléments. Il ne réagit que si vous ajouter et supprimer des éléments. Avez-vous une autre approche pour qui?
Cela dépend de l'élément que vous essayez de les surveiller. Vous pouvez mettre en œuvre toutes les sous-interfaces de docs.oracle.com/javase/8/javafx/api/javafx/beans/value/... et ajouter un Écouteur à chaque élément. De cette façon, chaque changement est détecté, et peut être traitée de la manière que vous souhaitez.
Ouais, j'ai découvert que vous pouvez utiliser des "Extracteurs" à l'écoute de propriétés supplémentaires, ce qui va déclencher un événement qui appelle "onChange" de la itemList trop. 🙂
OriginalL'auteur omgBob