swing jTree 绑定数据库

来源:互联网 发布:matlab怎么创建空矩阵 编辑:程序博客网 时间:2024/06/08 11:02

数据库的结构较简单,所以树的结构也很简单,除去根结点外,总共只有两层。

说明:本方法对于较简单的树结构有效,算法效率较低,不适合处理复杂树结构

数据表结构:

想让第一列作为父节点,第二列作为对应的子节点。在MyEclipse中实现。

1、在类中设置一个DefaultMutableTreeNode属性,作为根节点:

DefaultMutableTreeNode top = new DefaultMutableTreeNode("文件列表");

2、jTree实例:

private void initComponents(){jTree1 = new javax.swing.JTree(top);}

3、填充jTree节点的方法:

public void showTree(){conn myconn = new conn();ResultSet nodeRs;ResultSet leafRs;try{nodeRs = myconn.queryDB("select distinct cType from tempDocFiles where position='"+ this.position + "'"); // 获取所有父节点,即第一列中的唯一值leafRs = myconn.queryDB("select cType,fileName from tempDocFiles where position='"+ this.position + "'");//获取所有子节点,即第二列中所有值while (nodeRs.next()) // 遍历父节点{DefaultMutableTreeNode node = new DefaultMutableTreeNode(nodeRs.getObject(1)); // 创建个节点top.add(node);//将当前节点添加到根节点下面while (leafRs.next())//遍历所有子节点,{if (leafRs.getObject(1).toString()// 如果当前记录的第1列值 等于当前父节点.equals(nodeRs.getObject(1))){DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode(leafRs.getObject(2));node.add(leafnode); //则将当前节点添加到当前父节点下,作为其叶子节点}}leafRs.first(); //将游标移到最开始,以便下一轮遍历}jTree1.updateUI(); //刷新jTree结构} catch (SQLException e){// TODO Auto-generated catch blocke.printStackTrace();}}

4、在需要的地方调用上述方法即可。比如在构造方法中执行:

public mainFrame2(){initComponents();setMinimumSize(new java.awt.Dimension(800, 600));setMaximumSize(new java.awt.Dimension(800, 600));setLocationRelativeTo(null);setResizable(false);showTree();jTree1.setRowHeight(25);}
结果:


0 0
原创粉丝点击