如何在JavaFX中获取树视图中的所有选定树项

如何在JavaFX中获取树视图中的所有选定树项,javafx,treeview,java-8,getselection,Javafx,Treeview,Java 8,Getselection,我需要能够在树状视图中获得所有选定项目的更新列表(其中有多个选项处于打开状态) 这个例子: 显示如何一次响应/标识一个选定项目。是否有一种方法可以一次获取所有选定的项目?类似于下面假设的非工作代码: ArrayList<TreeItem> selectedTreeItems = new ArrayList<>(); myTreeView.getSelectionModel().selectedItemProperty().addListener(new ChangeLi

我需要能够在树状视图中获得所有选定项目的更新列表(其中有多个选项处于打开状态)

这个例子:

显示如何一次响应/标识一个选定项目。是否有一种方法可以一次获取所有选定的项目?类似于下面假设的非工作代码:

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?
    }
ArrayList selectedTreeItems=new ArrayList();
myTreeView.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾
公共无效已更改(可观察值可观察、对象旧值、对象新值){
selectedTreeItems.clear();//重置列表。正确吗?
//获取根目录的子目录的新列表
ObservableList objects=myTreeView.getRoot().getChildren();
//循环以获取所选项目。
对于(int i=0;i

我不知道如何实现我想要的。非常感谢您的帮助

只需观察并参考选择模型的
getSelectedItems()
列表:

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

public void onchange(Change只需观察并参考选择模型的
getSelectedItems()
列表:

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

public void onChanged(更改)覆盖方法onChanged(更改)覆盖方法onChanged(更改