Java FX删除TreeView根项

Bar*_*ski 3 treeview javafx javafx-8

在我的应用程序中,我需要能够从TreeView中删除每个项目.

我有我的TreeView注入i控制器

private @FXML TreeView<Component> treeView;
Run Code Online (Sandbox Code Playgroud)

我的删除代码:

private void deleteSelectedNode() {
    TreeItem<Component> node = treeView.getSelectionModel().getSelectedItem();

    if (node == null) {
        return;
    }

    TreeItem<Component> parent = node.getParent();

    if (parent != null) {
        parent.getChildren().remove(node);
    } else {
        //how to delete root item without parent?           
    }
}
Run Code Online (Sandbox Code Playgroud)

实际问题是:如何删除根元素?我在api中找不到任何方法,我不想创建新实例,我更喜欢依赖注入解决方案.我想我可以隐藏这个项目,直到下一个节点被创建,但它似乎有点hacky.

感谢您花在这个主题上的时间!

Jam*_*s_D 6

treeView.setRoot(null);
Run Code Online (Sandbox Code Playgroud)

应该管用.