`

JTree在myeclipse插件Matisse4Meyclipse下通过数据库初始化

 
阅读更多

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

 

 

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

 

 

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

 

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

 

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

 

 

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

jtree_group = new javax.swing.JTree();

 为

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

 

3.从数据库构建初始化JTree

 

 DbUtil.java

package com.java1234.util;

import java.sql.Connection;
import java.sql.DriverManager;


public class DbUtil {
	//想要连接的数据库的地址
	private String dbUrl = "jdbc:mysql://localhost:3306/ar_list";
	//用户名
	private String userName = "root";
	//密码
	private String password = "123456";
	//数据库驱动包名
	private String jdbcName = "com.mysql.jdbc.Driver";
	
	//获取连接
	public Connection getCon() throws Exception{
		Class.forName(jdbcName);//注册驱动程序,推荐这种方式,不会对具体的驱动类产生依赖
		
		Connection conn = DriverManager.getConnection(dbUrl, userName, password);//建立驱动程序与数据库的连接
		
		return conn;
	}
	
	//关闭与数据库的连接
	public void conClose(Connection conn) throws Exception{
		if(conn != null){
			conn.close();			
		}
	}
	
	public static void main(String args[]) throws Exception{
		DbUtil dbUtil = new DbUtil();
		Connection conn = dbUtil.getCon();
		System.out.println("成功建立驱动程序与数据库的连接");
		dbUtil.conClose(conn);
		System.out.println("成功关闭驱动程序与数据库的连接");
	}
}

NodeDao.java

package com.java1234.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class NodeDao {
	public ResultSet initData(Connection conn) throws Exception{
		String sql = "select * from list_group";
		PreparedStatement pst = conn.prepareStatement(sql);
		ResultSet rs = pst.executeQuery();
		return rs;
	}
}

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

代码

public testJTreeFrm() {
		initComponents();
		this.initTree();
	}
private void initTree() {
		Connection conn = null;
		try {
			conn = dbUtil.getCon();
			ResultSet rs = nodeDao.initData(conn);
			while (rs.next()) {
				DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(rs
						.getString("groupName"));
				DefaultTreeModel model = (DefaultTreeModel) jtree_group
						.getModel();
				rootNode.add(newChild);
				model.nodeStructureChanged(rootNode);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			JOptionPane.showMessageDialog(null, "初始化失败");
			e.printStackTrace();
			return;
		} finally {
			try {
				dbUtil.conClose(conn);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

 

 

我的cnblogs博客:http://www.cnblogs.com/java1234-com/

 

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

相关推荐

Global site tag (gtag.js) - Google Analytics