我private TreeNode root;
用来创建动态树。
我用了
<p:tree value="#{bean.root}" var="node">
<p:treeNode>
h:outputText value="#{node}" />
</p:treeNode>
</p:tree>
Run Code Online (Sandbox Code Playgroud)
显示在我的页面中
我的问题是如何删除空的节点(不包含子节点)
例子:
node1
child 1
child 2
node2
node3
child 1
Run Code Online (Sandbox Code Playgroud)
(节点2为空,如何将其删除?)
您可以首先让所有的孩子都在树上循环:
List<TreeNode> nodes = this.root.getChildren();
Run Code Online (Sandbox Code Playgroud)
然后,您可以执行以下操作:
List<TreeNode> nodes = ....
Iterator<TreeNode> i = nodes.iterator();
while (i.hasNext()) {
TreeNode = i.next();
// Use isLeaf() method to check doesn't have childs.
i.remove();
}
Run Code Online (Sandbox Code Playgroud)
这将是下一个代码的正确版本,因为我想您无法在循环中删除集合元素。
for (TreeNode treeNode : nodes) {
if(treeNode.isLeaf()){
TreeNode parent = treeNode.getParent();
parent.getChildren().remove(treeNode);
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
问候。
归档时间: |
|
查看次数: |
6034 次 |
最近记录: |