Comment obtenir tous les éléments d'arborescence sélectionnés dans une vue d'arborescence à JavaFX

StackOverflow https://stackoverflow.com//questions/24050939

Question

J'ai besoin de pouvoir obtenir une liste mise à jour de tous les éléments sélectionnés dans une vue d'arborescence (qui a plusieurs sélection).

Cet exemple: Article Sélectionnez l'événement de JavaFX2

montre comment répondre / identifier un élément sélectionné à la fois.Y a-t-il un moyen d'obtenir tous les articles sélectionnés à la fois?Quelque chose comme le code hypothétique non-travail ci-dessous:

ArrayList<TreeItem> selectedTreeItems = new ArrayList<>();

myTreeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observable, Object oldValue, Object newValue) {
            selectedTreeItems.clear();//reset the list. correct?

            //get a new list of children of the root
            ObservableList objects = myTreeView.getRoot().getChildren();

            //loop to get the selected items.
            for (int i = 0; i < objects.size(); i++) {
                TreeItem object = (TreeItem) objects.get(i);
                if (thisObjectIsSelected(object)) {
                    selectedTreeItems.add(object);
                }
            }


        }
    });

    privatevoid thisObjectIsSelected(TreeItem item){
    //what do I do here?
    }

Je ne suis pas sûr comment réaliser ce que je veux.Toute aide est grandement appréciée!

Était-ce utile?

La solution

Observez simplement et reportez-vous à la liste de sélection du modèle de sélection du modèle de sélection:

myTreeView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener<TreeItem>() {
    @Override
    public void onChanged(Change<? extends TreeItem> change) {
        // myTreeView.getSelectionModel().getSelectedItems() contains all the selected items
    }
});

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top