2014-09-04 72 views
3

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

我有我的TreeView注入我控制器

private @FXML TreeView<Component> treeView; 

我删除代码:

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

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

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

回答

5
treeView.setRoot(null); 

应该工作。

+0

哦,我认为它最终会抛出一些异常,但我需要在选择更改处理程序中使用nullcheck -_-当然可以,非常感谢! – 2014-09-04 18:18:02