/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication5;import java.util.LinkedList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;/**
*
* @author Administrator
*/
public class NewClass { LinkedList<String[]> s = new LinkedList<String[]>();//String[] 里面的 顺序是: 节点 名称 父节点 String[] e0 = {"1", "我的电脑1", ""};
String[] e1 = {"2", "我的电脑2", "1"};
String[] e2 = {"3", "我的电脑3", ""};
String[] e3 = {"4", "我的电脑4", "3"};
String[] e4 = {"5", "我的电脑5", ""};
String[] e5 = {"6", "我的电脑6", "1"};
String[] e6 = {"7", "我的电脑7", "5"};
String[] e7 = {"8", "我的电脑8", "6"};
String[] e8 = {"9", "我的电脑9", ""};
String[] e9 = {"10", "我的电脑10", "8"}; public NewClass() { s.add(e0);
s.add(e1);
s.add(e2);
s.add(e3);
s.add(e4);
s.add(e5);
s.add(e6);
s.add(e7);
s.add(e8);
s.add(e9);
System.out.println(s.size());
System.out.println(s.get(0)[0]);
} public DefaultTreeModel treenode(String root, DefaultMutableTreeNode dd) { DefaultTreeModel model = new DefaultTreeModel(dd);
int lth = this.s.size();
LinkedList<String> sx = new LinkedList<String>();
LinkedList<DefaultMutableTreeNode> sxltree = new LinkedList<DefaultMutableTreeNode>();
for (int i = 0; i < lth; i++) {
DefaultMutableTreeNode treec = new DefaultMutableTreeNode(s.get(i)[1]);
if (s.get(i)[2].equals(root)) {
sxltree.add(treec);
sx.add(s.get(i)[0]);
dd.add(treec);
} }
for (int i1 = 0; i1 < sx.size(); i1++) {
System.out.println("一层完成il" + i1);
treenode(sx.get(i1), sxltree.get(i1)); }
System.out.println("一层完成");
return model;
} public static void main(String[] args) {
// TODO code application logic here
DefaultMutableTreeNode ll = new DefaultMutableTreeNode("根目录管理器");
NewClass ss = new NewClass(); JFrame jf = new JFrame();
JPanel jp = new JPanel();
JTree jtree = new JTree(); jtree.setModel(ss.treenode("", ll));
JScrollPane hh = new JScrollPane(jtree);
jf.add(hh);
jf.setSize(300, 444);
jf.setVisible(true);
}
}
第二,一次构建不是一个好的做法。数据量大的时候可能造成很长时间的等待。
第三,强烈建议使用实现treemodel所需方法的形式。这样可以加深你的理解,也可以方便灵活的扩展,适应多种需求。说的较为抽象,担不是完全抽象。
一家之言,仅供参考。