我找了一个递归循环生成树,可使只能显示一部分,不能完全从里取出数据,我先将循环部分代码贴出:
rootNode=newDefaultMutableTreeNode("Root");
jTreeCatalog=newJTree(rootNode);
//调用递归生成树方法
generateCatalogTree(0,rootNode);
//递归生成树方法
//-----pNode是父节点------ID为节点的ID,对应表中的ID字段

privatevoidgenerateCatalogTree(intID,DefaultMutableTreeNodepNode){
//循环递归idparentid
ResultSetrs=null;
DefaultMutableTreeNodechildNode=null;
try{
st.setInt(1,ID);
rs=st.executeQuery();

while(rs.next()){
childNode=newDefaultMutableTreeNode(rs.getString("Name").trim());
pNode.add(childNode);
generateCatalogTree(rs.getInt("ID"),childNode);
}
}catch(Exceptione){
e.printStackTrace();

}
}递归循环由子目录返回到父目录时,父目录的结果集已经关闭会出错递归向量。
原贴的解决办法是:先将数据取出来存入向量中,递归循环是从向量中取数据递归向量。
可使我不知道怎么使用向量取数据,还请各位高手帮帮忙!!!
最好写出循环的代码,谢谢!
可见分治法也是用各个子问题的解来构造原问题的解,相当于一种特殊的递归算法,只不过一般的递归算法中各个子问题不一定相互独立,可能两个子问题会同时依赖于第三个子问题。(2)子问题求解:由于用两个子问题来定义原问题,完成了递归定义,因此可直接对两个子问题进行递归求解,这里的问题求解就是对数组进行排序。 为了采取有 效措施早 日 解 量存在 都会 对人体造成严 重危害 - 特 别是 重金 属元素 及其化 合物在 生 决地下水污染 问题 , 有必要就 地下水污染途 径、 产生 的危害及有效 的防 物体 内有蓄集作用, 长 时间的蓄集浓 度会越来越 大, 造成的 危害也就 越 治措 施进行深入 探讨。
toflyforlove(吾将远去):

我知道可以用Arraylist问题是我不知道怎么写,该怎么取数据阿,能不能给我做个例子,谢谢!
toAWUSOFT(如果可以了,请结贴,谢谢!):
好像不能那样吧,这是递归循环的,不止一个子节点,不可能每次有子节点都重新用一个Statment吧
在递归循环中不停的取ResultSet效率是很低的,楼主还是应该先把数据全取出来再构造树可以考虑用Oracle的ConnectBy语句将中的数据按照父子关系排列好,然后后续的处理就方便多了
toqingyuan18(zealot_tang):
用那个递归的sql语句取出里的数据时要是用while(next())也一样出现这个问题的,他只递归一次数据,不知道该用什么方法好啊
弄个二维数组好了.A[2][rowcount]A[0][rowcount]=self_imformationA[1][rowcount]=parent_imformation
toqingyuan18(zealot_tang):
我说错了,那样递归势能取出数据结构的数据,可是不知道怎么把他显示在JTree里,你能不能帮我写一下代码阿,谢谢
哈哈好了我将数据取出来放在list表里,在进行递归就ok了,谢谢大家了,每人都加分!!
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-102641-1.html
该行动就行动吧
但是