2013-02-07 6 views
2

Je rencontre des problèmes avec les articles JavaFXs ListView. La chose est que je ne peux pas trouver un moyen de les réorganiser à l'exécution. Juste avec un élément traînant avec la souris. Aussi je veux changer l'ordre des articles dans Underlaying ObservableList.javafx listevoir la liste des articles

Comment cela a-t-il pu être fait?

+2

http://blog.ngopal.com.np/2012/05/06/javafx-drag- et-drop-cell-in-listview/ – invariant

+2

Il existe un exemple de code pour réorganiser des éléments dans un ListView par glisser-déposer dans la réponse à [Comment créer un TableView réordonnable dans JavaFx] (http://stackoverflow.com/questions/20412445/comment-créer-un-reorder-able-tableview-dans-javafx). – jewelsea

Répondre

0

Vous pouvez modifier l'ordre du ObservableList qui forme le modèle sous-jacent de la ListView à tout moment de changer l'ordre de vos articles Voir la liste ...

... par exemple: utiliser un comparateur pour réordonner le contenu de votre affichage de la liste, vous pouvez utiliser quelque chose comme:

javafx.scene.control.ListView<TYPE> listView; // Your ListView, defined somewhere else. 

java.util.Collections.sort(listView.getItems(), new java.util.Comparator<TYPE>() { 
    @Override 
    public int compare(TYPE o1, TYPE o2) { 
     // Implement your comparator here. 
    } 
}); 

... alors que « TYPE » correspond au type de votre instance ListView.

Voir http://docs.oracle.com/javafx/2/api/javafx/scene/control/ListView.html#itemsProperty pour plus de détails sur la définition des éléments de vue liste. Vous pouvez ajouter, supprimer et mélanger les éléments autour comme vous le souhaitez et le ListView ajustera automatiquement son apparence ...

+1

oui, merci. Le problème avec mon cas est que j'ai besoin de réorganiser les éléments en les faisant glisser avec la souris. Pas par la logique du code! J'ai trouvé ce blog http://blog.ngopal.com.np/2012/05/06/javafx-drag-and-drop-cell-in-listview/ et cette solution fonctionne pour moi, mais je pense que cela est vraiment compliqué pour une telle chose ... – greengold