swing·通讯录项目预备知识之JTree__数据库构建节点树[一]

 能让你在弯路上一直走下去死不悔改的,应该就是所谓的不撞南墙不回头,不见黄河心不死的倔犟了吧。。。人可以低头认输,但是一定要让自己心服口服的低头,一定是力所不能及时心甘情愿无话可说的认输。

 

 

在myeclipse下通过Matisse4Meyclipse插件拖出来的JTree,默认带有一些分支节点和叶子节点,而这些我们不是我们想要的东西,通过编写删除节点的代码也只可以运行时调用删除功能,这里有一个简便的办法就是更改自动生成的代码,使之变成想要的自定义的JTree

1.介绍JTree的一个构造方法---JTree(Tree root, boolean asksAllowsChildren)

来自API:返回JTree,指定的TreeNode作为其根,它用指定的方式显示根节点,并确定节点是否为叶节点。

参数:root ---  一个TreeNode对象     asksAllowsChildren ---如果为 false,则不带子节点的任何节点都是叶节点;如果为 true,则只有不允许带子节点的节点是叶节点

2.更改Matisse4Meyclipse插件自动生成的代码,更改部分为initComponents()中的

1 jtree_group = new javax.swing.JTree();

1 jtree_group = new javax.swing.JTree(rootNode, false);

3.从数据库构建JTree

 DbUtil.java和图书管理系统的一样,就是表名更改下即可

NodeDao.java

 1 package com.java1234.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 
 8 public class NodeDao {
 9     public ResultSet initData(Connection conn) throws Exception{
10         String sql = "select * from list_group";
11         PreparedStatement pst = conn.prepareStatement(sql);
12         ResultSet rs = pst.executeQuery();
13         return rs;
14     }
15 }

需要在界面类中增加个初始化JTree的自定义方法initTree(),并在构造函数中添加调用语句

代码

1 public testJTreeFrm() {
2         initComponents();
3         jpm1 = new JPopupMenu();
4         this.initTree();
5     }
 1 private void initTree() {
 2         Connection conn = null;
 3         try {
 4             conn = dbUtil.getCon();
 5             ResultSet rs = nodeDao.initData(conn);
 6             while (rs.next()) {
 7                 DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(rs
 8                         .getString("groupName"));
 9                 DefaultTreeModel model = (DefaultTreeModel) jtree_group
10                         .getModel();
11                 rootNode.add(newChild);
12                 model.nodeStructureChanged(rootNode);
13             }
14         } catch (Exception e) {
15             // TODO Auto-generated catch block
16             JOptionPane.showMessageDialog(null, "初始化失败");
17             e.printStackTrace();
18             return;
19         } finally {
20             try {
21                 dbUtil.conClose(conn);
22             } catch (Exception e) {
23                 // TODO Auto-generated catch block
24                 e.printStackTrace();
25             }
26         }
27     }

 

 

欢迎光临我师傅小锋哥的网站   Java知识分享网  www.java1234.com    有大量Java资料供学习参考用,一切免费

转载于:https://www.cnblogs.com/hipk/articles/3129913.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值