我用JB2006做的 但是老是无法把动态树的 枝 和 叶 节点显示出来 
我不知道我代码编辑思维那个地方错了 麻烦大家帮我看看好吗?
/**
下面是动态树面板类的代码
*/
package MyPanel;import java.awt.BorderLayout;
import javax.swing.tree.DefaultMutableTreeNode;//导入树包
import javax.swing.JPanel;
import javax.swing.JTree;
import java.awt.Rectangle;
import java.util.ArrayList;
import Business.BigcategoryBz;
import Business.SmallcategoryBz;
import Bean.BigCategoryBean;
import Bean.SmallCategoryBean;public class JtreePanel extends JPanel {
    //构建根节点
    public DefaultMutableTreeNode root ;
    //把根节点添加到树里面
    public JTree jTree1;
    
    public BigcategoryBz bc;
    
    public SmallcategoryBz sc;    public JtreePanel() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }   private void jbInit() throws Exception {
        this.setLayout(null);
        addtree();
        jTree1=new JTree(root);
        jTree1.setBounds(new Rectangle(1, 0, 149, 215));
        this.add(jTree1);
    }    /**
     * 添加树结构
     * @throws Exception
     */    public DefaultMutableTreeNode addtree() throws Exception { //添加树结构
        root = new DefaultMutableTreeNode("资产信息");
        root.removeAllChildren();
        ArrayList al = new ArrayList();
        ArrayList all = new ArrayList();
        bc=new BigcategoryBz();
        sc=new SmallcategoryBz();
        //调用大类的业务类中的获取信息的方法
        al =(ArrayList)bc.getcatename();
    
        //下面循环把信息全部倒出来
        for (int i = 0; i < al.size(); i++) {
           //通过实体类进行了一次封装 然后再倒出信息
            BigCategoryBean bcb = new BigCategoryBean();
            bcb = (BigCategoryBean) al.get(i);
            String name = bcb.getCatename().toString();            //添加之节点进去            DefaultMutableTreeNode zhi = new DefaultMutableTreeNode(name);            //调用小类的业务类中的获取信息方法            all = (ArrayList) sc.getSmallcateInfo(name);
            for (int j = 0; j < all.size(); j++) {
            //通过另外个实体类 封装的信息倒出
                SmallCategoryBean scb = new SmallCategoryBean();
                scb = (SmallCategoryBean) all.get(j);
                String sname = scb.getCatename();                //添加叶节点进去
                DefaultMutableTreeNode ye = new DefaultMutableTreeNode(sname);
                zhi.add(ye);
            }
            root.add(zhi);
    
        }
        return root;
    } 
}
/**
然后分别调用了两个业务类中的方法
*/import java.sql.*;
import java.util.List;
import java.util.ArrayList;
import DBCon.SqlDBCon;
import Bean.*;public class BigcategoryBz {
    private SqlDBCon db;
    private List l;
    private ResultSet rs;
    private BigCategoryBean bc;    /**
     * 下面是获取大类信息的方法
     */
    public List getcatename() throws Exception {
        db = new SqlDBCon();
        l = new ArrayList();
        String sql = "select * from bigcategory";
        rs = db.doSelect(sql);
        while (rs.next()) {
            bc = new BigCategoryBean();
            bc.setCateid(rs.getInt("cateid"));
            bc.setCatename(rs.getString("catename"));
            l.add(bc);
        }
        db.doClose();
        return l;
        
    }
}----------------------
import java.sql.*;
import java.util.List;
import java.util.ArrayList;
import DBCon.SqlDBCon;
import Bean.*;
public class SmallcategoryBz {
    SqlDBCon db;
    ResultSet rs;
    /**
     * 根据大类编号获取小类资产信息
     * @param bigcateid int
     * @return List
     */
    public List getSmallcateInfo(String bigcateid){
       List l=new ArrayList();
       String sql="select * from smallcategory where bigcateid="+bigcateid+"";
       db=new SqlDBCon();
       rs=db.doSelect(sql);
       System.out.println(sql);
       try {
           while (rs.next()) {
               SmallCategoryBean scb=new SmallCategoryBean();
                scb = new SmallCategoryBean();
               scb.setCateid(rs.getInt("subcateid"));
               scb.setCatename(rs.getString("catename"));
               scb.setBigcateid(rs.getInt("bigcateid"));
               l.add(scb);
           }
       } catch (SQLException ex) {
           ex.printStackTrace();
       }finally{
           try {
               db.doClose();
           } catch (Exception ex1) {
               ex1.printStackTrace();
           }
       }       return l;
   }}