我有下面的代码,我在 DefaultMutableTreeNode 上进行迭代,并在某些条件下将一个新节点作为子节点添加到叶节点,我可以毫无问题地做到这一点。但是,当我必须在某些情况下删除某个节点时,我正在该节点上执行 defaultNode.removeFromParent(),该节点应该从其父节点中删除该节点,但它没有被删除。你能告诉我我在这里缺少什么吗?
public static DefaultMutableTreeNode test(DefaultMutableTreeNode dm) {
Enumeration e = dm.breadthFirstEnumeration();
SiteDataAccessor sda = new SiteDataAccessor();
while (e.hasMoreElements()) {
DefaultMutableTreeNode defaultNode = (DefaultMutableTreeNode) e.nextElement();
CategoryBean category = (CategoryBean) defaultNode.getUserObject();
if(defaultNode.isLeaf()) {
ArrayList<String> productIds=category.getCategoryProductIdList();
if(productIds!=null) {
boolean hasProducts=false;
for(String pid:productIds) {
ProductBean p=sda.getProductBeanById().get(pid);
if ( p.isReferenceDesign() && p.getReleaseLevel().equalsIgnoreCase("Live")) {
CategoryBean catRegion = new CategoryBean();
catRegion.setId(p.getId());
catRegion.setName(p.getCode());
DefaultMutableTreeNode nodeRegion = new DefaultMutableTreeNode(catRegion);
defaultNode.add(nodeRegion);
hasProducts=true;
}
}
if(!hasProducts) {
// I have to remove this node from its parent
//defaultNode.removeFromParent();
}
}else {
// I have to remove this node from its parent
//defaultNode.removeFromParent();
}
}
}
return dm;
}```