0

我有下面的代码,我在 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;
    }```
4

0 回答 0