【问题标题】:How to get all selected tree items in a tree view in JavaFX如何在 JavaFX 的树视图中获取所有选定的树项目
【发布时间】:2014-06-05 03:01:16
【问题描述】:

我需要能够在树视图中获取所有选定项目的更新列表(其中有多项选择)。

本例:Tree item select event in javafx2

显示如何一次响应/识别一个选定的项目。有没有办法一次获得所有选定的项目?类似于下面假设的非工作代码:

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?
    }

我不确定如何实现我想要的。非常感谢任何帮助!

【问题讨论】:

    标签: javafx treeview java-8 getselection


    【解决方案1】:

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

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

    【讨论】:

    • 覆盖方法是onChanged(Change extends TreeItem> change)
    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多