java递归 treeview_treeview递归

这篇博客介绍了如何使用Java递归方法动态加载TreeView控件,展示无限级别的分类数据。通过绑定数据库表A,递归函数`BindTree`实现了根据父ID加载子节点,最后展示了调用和运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据库

table A(

ID int pk,

Value varchar,

Fid int

)

A:

ID   Value    Fid

1   value1     0

2   value2     0

3   value3     1

4   vlaue4     1

5   value5     2

6   value6     2

2.递归

void BindTree(TreeNodeCollection tnc,string fid)

{

DataView dv=ds.Tables[0].DefaultView;//ds为表A的填充容器,ds.Tables[0]即为表A

dv.RowFilter = "[Fid]= " + fid;

TreeNode tn;

foreach (DataRowView item in dv)

{

tn = new TreeNode();

tn.Value = item["ID"].ToString();  //将父级ID作为子级的Fid;

tn.Text = item["Value"].ToString();

tn.Expanded = false;//折叠

tnc.Add(tn);

BindTree(tnc[tnc.Count - 1].ChildNodes, tn.Value);

}

}

3.调用

BindTree(this.TreeView1.Nodes, 0);

4.效果

1   value1     0

3   value3     1

4   vlaue4     1

2   value2     0

5   value5     2

6   value6     2

WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日

进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...

winform进程、线程、TreeView递归加载

进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...

TreeView递归绑定无限分类数据

TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...

net TreeView 递归

1.显示效果 2.数据insert脚本 insert into CITY(id,text,pid) values('1','城市',null)insert into CITY(id,text,pid ...

treeview递归加载

实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

TreeView递归取值

string jingyuan = ""; string jinghui = ""; private void DiGui(TreeNode tn) { if ...

TreeView递归绑定数据的两种方法

#region 绑定TreeView /// /// 绑定TreeView(利用TreeNode) /// ///

WinForm TreeView递归加载

这个其实通俗一点讲就是的树状分支图 首先利用递归添加数据 数据放入 treeView1.Nodes.Add() 中 public Form3() { InitializeComponent(); Tr ...

WPF TreeView递归遍历相关方法

/// /// 递归改变组织树选中状态. /// /// < ...

随机推荐

css文本换行相关属性及解释

本文摘自 http://www.wufangbo.com/css-qiang-zhi-huan-hang/ 强制换行与强制不换行用到的属性 我们一般控制换行所用到的CSS属性一共有三个:word-wr ...

游戏buff设计参见

其实这类帖子并没有多少的设计理论,对于策划的提升和帮助也并不大,原因其实在于其适用性太窄,当我要设计XX象棋的时候,它就滚一边去了. 废话不多说切入正题: 游戏中的BUFF/DEBUFF我们见过很多, ...

单片机脚本语言-移植lua到stm32-MDK

Lua简单介绍 Lua[1]  是一个小巧的脚本语言.作者是巴西人.该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua脚本能够非常easy的被C/C++ 代码调用, ...

HDU 3571 N-dimensional Sphere(高斯消元 数论题)

这道题算是比较综合的了,要用到扩展欧几里得,乘法二分,高斯消元. 看了题解才做出来orz 基本思路是这样,建一个n*(n-1)的行列式,然后高斯消元. 关键就是在建行列式时会暴long long,所以 ...

CCF-学生排队

PS:此文章已在我的站点更新,请移步访问~更多注释讲解哦.https://www.jeson.xin/ccf-student_queuing.html

准备情人节礼物比写代码难?来看看IT直男给女友们的礼物

今天是情人节,据说IT直男在每个这样弥漫着恋爱气息的日子里都能把礼物送成"辣眼睛"现场,为了反(zheng)驳(shi)这个观点,小编特意走访了网易云的架构师.工程师.产品经理.程 ...

【Linux】使用fsck对磁盘进行修复

在后台执行 磁盘修复 nohup fsck.ext3 -y /dev/sdb1 > /root/fsck.log 2>&1 & 使用nohup和& 让进程在后台执行 ...

NOI 2018网络同步赛&lpar;游记&quest;&rpar;

刚中考完那段时间比较无聊,报名了一个同步赛,报完名才发现成绩单是要挂到网上的,而且因为报的早给了一个很靠前的考号...那布星啊,赶紧学点东西,于是在一周内学了网络流,Treap以及一些数论. Day1 ...

Redis系列-php怎么通过redis扩展使用redis

From: http://blog.youkuaiyun.com/love__coder/article/details/8691679 通过前面几篇blog,我们应该对redis有个大致的认识,这里再讲解下,p ...

Java在窗口中添加树形菜单TreeView源代码,分享给JAVA新手的一个例子,JTextField jtfInfo; //文本域,用于显示点击的节点名称   public JTreeDemo(){    super("森林状的关系图"); //调用父类构造函数       DefaultMutableTreeNode root = new DefaultMutableTreeNode("设置"); //生成根节点    DefaultMutableTreeNode node1=new DefaultMutableTreeNode("常规"); //生成节点一    node1.add(new DefaultMutableTreeNode("默认路径")); //增加新节点到节点一上    node1.add(new DefaultMutableTreeNode("保存选项"));    root.add(node1); //增加节点一到根节点上    root.add(new DefaultMutableTreeNode("界面"));    root.add(new DefaultMutableTreeNode("提示声音"));    root.add(new DefaultMutableTreeNode("打印"));       JTree tree = new JTree(root); //得到JTree的实例    DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //得到JTree的Renderer    renderer.setLeafIcon(null); //设置叶子节点图标为空    renderer.setClosedIcon(null); //设置关闭节点的图标为空    renderer.setOpenIcon(null); //设置打开节点的图标为空       tree.addTreeSelectionListener(new TreeSelectionListener() { //选择节点的事件处理    public void valueChanged(TreeSelectionEvent evt) {    TreePath path = evt.getPath(); //得到选择路径    String info=path.getLastPathComponent().toString(); //得到选择的节点名称    jtfInfo.setText(info); //在文本域中显示名称    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值