如何将子节点添加到最后一个父节点
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()));
}
}
}
}
}
我想向最后一个父节点添加一些子节点,但这里我不使用变量来添加节点,这是我的代码以获取更多详细信息
代码:
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()));
}
}
}
}
}