如何将子节点添加到最后一个父节点

How to add children nodes to the last parent node

我想向最后一个父节点添加一些子节点,但这里我不使用变量来添加节点,这是我的代码以获取更多详细信息

代码:

Table table = new Table();
    XMLTable xtable = new XMLTable();

    File[] files = null; 
    File projectsDirectory = new File("projects");
    files = projectsDirectory.listFiles();
    for( File f : files){
        if(f.isDirectory()){
            root.add(new DefaultMutableTreeNode(f.getName()));// parent node added
            for(File fc : f.listFiles()){

                if(fc.isFile() && fc.getName().equalsIgnoreCase("table.xml")){

                    table = xtable.getXMLTable("table.xml");
                    ArrayList<Column> cols = table.getColumns();
                    for(Column col:cols){
                        ((DefaultMutableTreeNode) f.getName()).add(new DefaultMutableTreeNode(col.getName()));//don't work (just for test)
                    }

                }
            }

        }

add(...) 方法中内联创建 TreeNode 可能会搬起石头砸自己的脚,因为您最终没有可行的参考以供稍后在您的代码中使用。因此,不要在线创建树节点对象,而是在 for 循环中创建一个 TreeNode 变量,将对象分配给它,将其添加到根,然后使用局部变量添加更多节点,如果需要。

例如,

Table table = new Table();
XMLTable xtable = new XMLTable();

File[] files = null; 
File projectsDirectory = new File("projects");
files = projectsDirectory.listFiles();
for( File f : files){
    if(f.isDirectory()){
        TreeNode treeNode = new DefaultMutableTreeNode(f.getName());
        root.add(treeNode);// parent node added
        for(File fc : f.listFiles()){

            if(fc.isFile() && fc.getName().equalsIgnoreCase("table.xml")){

                table = xtable.getXMLTable("table.xml");
                ArrayList<Column> cols = table.getColumns();
                for(Column col:cols){
                    treeNode.add(new DefaultMutableTreeNode(col.getName()));
                }
            }
        }
    }
}