JavaFX ListView Sélection Multiple

Je veux sélectionner plusieurs éléments dans la liste. Il allait réagir à un clic de souris. J'ai essayé avec ceci:

selectedLogsList.addAll(logsListView.getSelectionModel().getSelectedItems());

mais il me faisait des doublons.
J'ai donc essayé ceci:

logsListView.getSelectionModel().selectedItemProperty().addListener(
        new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> ov, 
                String old_val, String new_val) {
                    if(selectedLogsList.contains(new_val)) {
                        selectedLogsList.remove(new_val);
                    } else {
                        selectedLogsList.add(new_val);
                    }
        }
    });

Je voudrais aussi que, si la cellule est sélectionnée, il doit être marqué comme tel (couleur de fond différente)
Merci!

  • exactement ce que vous voulez atteindre? voulez-vous connaître tous les éléments sélectionnés? Vous pouvez faire votre ListView multi-sélectionnable par : listView.getSelectionModel().setSelectionMode(SelectionMode.PLUSIEURS);
  • Simple 😀 Il a travaillé quant à la sélection multiple avec la touche CTRL. Mais elle fait encore des doublons. Si je clique plusieurs fois sur la même cellule, il ajoute à chaque fois. Au lieu de cela, je veux supprimer la deuxième fois que je clique sur.
  • Si vous copiez le code de ma réponse ci-dessous, il fait exactement ce que vous voulez. Si vous appuyez sur la touche CTRL, vous pouvez ajouter plusieurs éléments et dans la setOnMouseClicked() méthode vous permettra d'obtenir tous les éléments sélectionnés. Si vous désélectionnez un élément (encore en appuyant sur la touche CTRL) il sera de nouveau appel à la setOnMouseClicked()-méthode, mais cette fois, l'élément ne sera pas dans la liste.
  • Je l'ai maintenant. J'ai essayé chose de similaire, mais il semble que je n'était pas quelque part. Merci! 😀
InformationsquelleAutor Bade | 2014-06-11