2012-06-15 5 views
3

Existe-t-il un moyen de forcer une actualisation ListView dans Javafx 2.1 sans recharger la liste et modifier la valeur sélectionnée?Javafx ListView actualisation

La liste observable est faite de chaînes de sorte que la modification de leur valeur n'est pas possible.

+0

où il y avait beaucoup de questions similaires sur tableview. E.g: http://stackoverflow.com/questions/10912690/updating-rows-in-tableview –

+0

Oui, le problème est que je ne veux pas modifier une propriété visible. Il devrait y avoir un moyen de mettre à jour une liste par programmation, avec un seul appel. – betaman

Répondre

2

Envelopper les valeurs String avec Property comme SimpleStringProperty et en changeant la valeur de cette propriété devrait être réalisable.

+0

Merci Uluk. C'est une solution possible. Mais je souhaite tellement il y avait une sorte de "rafraîchir" commande dans ListView et TableView – betaman

+0

alors vous pouvez aller à http://javafx-jira.kenai.com et déposer une demande de création –

+2

Je viens de le créer: http: // javafx-jira.kenai.com/browse/RT-22599. Toute personne souhaitant que cette fonctionnalité soit implémentée est invitée à visiter cette adresse et à voter pour cette fonctionnalité. – betaman

3

Essayez:

... 
ObservableList<String> olist = ... 
ListView<String> listv = ... 
... 
listv.setItems(null); 
listv.setItems(olist); 
+0

Merci pour la réponse. Je l'ai essayé et ça marche, mais ça provoque un clignotement dans certains champs ce qui est gênant quand on rafraîchit une fois par seconde. J'ai trouvé une autre façon plus ellaborate de le faire qui fonctionne bien pour mes besoins. Si quelqu'un en a besoin, il suffit de le demander pour que je l'affiche. – betaman

+0

@betaman, s'il vous plaît poster votre solution - je suis coincé avec le même problème :(merci! – bennyl

+1

@bennyl Il ya beaucoup de solutions, mieux que le mien, dans le lien Jira J'ai posté ci-dessus.Choisissez-en un et profitez-en pour voter ils le corrigent dans une future version Javafx https://javafx-jira.kenai.com/browse/RT-22599 – betaman

0

J'utilise:

private static final ObservableList<String> lists = FXCollections.observableArrayList(); 
... 


synchronized(lists) { 
     List<String> lsts = new ArrayList<>(); 
     lsts.addAll(lists); 
     lists.clear(); 
     lists.addAll(lsts);    
    } 
Questions connexes