我用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;
}}
我不知道我代码编辑思维那个地方错了 麻烦大家帮我看看好吗?
/**
下面是动态树面板类的代码
*/
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;
}}
还有树的值改变时间还没有写! 麻烦后面的达人帮忙看下!