SWT--树状结构

树状结构

在这里插入图片描述
在这里插入图片描述

显示父类但不显示类,当点击某一父类时才显示相应子类

此时要求在代码中动态手动的创建树的项即项的项

  • 在Tree显示顶级父类——打开此窗口就需要显示
/**
 * 在Tree显示顶级父类——打开此窗口就需要显示
 * @param tree
 */
private void showParentType(Tree tree){
	try {
		//顶级父类型,显示大类型   parent=0 --》数据库中的表记录
		List<Map<String,Object>> types=dao.findByParent("0");//返回查询到的所有父类
		TreeItem item=null;
		//可做一个空的判断
		for(Map<String,Object> m:types){
			//在Tree中创建一个新顶级父项
			item=new TreeItem(tree,SWT.NONE);
			//设置树项目的名称
			item.setText(String.valueOf(m.get("T_NAME")));//将对象转成字符串
			//需要根据顶级编号查询其下面的子类——将id存储在父项中
			item.setData("T_PARENT",m.get("T_ID"));//以键值的方式存储
		}
	} catch (Exception e) {
		e.printStackTrace();
	}	
}
  • 在父项中显示子项——点击父项时显示,所以需要添加在树的点击事件中
    添加点击事件
    在这里插入图片描述
    获取点击的顶级父类
TreeItem item=(TreeItem)e.item;
/**
 * 显示子——点击父项时显示,所以需要添加在树的点击事件中()
 * @param item
 */
private void showSonType(TreeItem item){
	//记录下父编号为了查询显示其子项
	String parent=String.valueOf(item.getData("T_PARENT"));
	try {
		//list返回根据父类查询到的子类
		List<Map<String,Object>> list=dao.findByParent(parent);
		if(null==list||list.isEmpty()){
			return ;
		}
		//清空当前项下的所有子项——每次都是重复的查询
		//TODO removeALL是怎么添加到子类下面去的
		item.removeAll();
		
		TreeItem treeItem=null;
		for(Map<String,Object> m:list){
			//放在当前选中的item下面
			treeItem =new TreeItem(item,SWT.NONE);
			treeItem.setText(String.valueOf(m.get("T_NAME")));
			//将id存储
			treeItem.setData("T_PARENT",m.get("T_ID"));
		}
	} catch (Exception e1) {
		e1.printStackTrace();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值