jtree mysql_JTree和数据库问题

展开全部

package javaTEST.JTree;

import java.awt.Dimension;

import java.io.ObjectInputStream;

import java.net.URL;

import java.net.URLConnection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.HashMap;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTree;

import javax.swing.UIManager;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.tree.DefaultTreeModel;

import javax.swing.tree.TreeNode;

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

/**

*

* @author Administrator

*/

public class ParamTree {

public HashMap paramMap = new HashMap();

public String getTreeNodeValue(JTree tree) {

TreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

String selectItem = node.toString();

while (node.getParent() != null) {

node = node.getParent();

selectItem = selectItem + " : " + node.toString();

}

selectItem = selectItem.trim();

if (selectItem.charAt(selectItem.length() - 1) == ':') {

selectItem = selectItem.substring(0, selectItem.length() - 2).trim();

}

return selectItem;

}

public JTree generateTree() {

DefaultMutableTreeNode root = new DefaultMutableTreeNode("");

DefaultMutableTreeNode temp = null;

DefaultMutableTreeNode[] branchesNode = new DefaultMutableTreeNode[5];

branchesNode[0] = root;

ResultSet rs = getParamData();

int flag = 2;

int poslen = 4;

try {

while (rs.next()) {

String pos = rs.getString(1).trim();

String type = rs.getString(2).trim();

String des = rs.getString(3).trim();

poslen = pos.length();

System.out.println(poslen);

if (type.equals("B")) {

if (poslen > flag) {

temp = new DefaultMutableTreeNode(des);

branchesNode[((flag - 1)) / 2].add(temp);

flag = poslen;

branchesNode[(flag - 1) / 2] = temp;

} else if (poslen == flag) {

temp = new DefaultMutableTreeNode(des);

branchesNode[(flag - 3) / 2].add(temp);

branchesNode[(flag - 1) / 2] = temp;

} else {

branchesNode[(flag - 1) / 2] = null;

temp = new DefaultMutableTreeNode(des);

flag = poslen;

branchesNode[(flag - 3) / 2].add(temp);

branchesNode[(flag - 1) / 2] = temp;

}

} else if (type.equals("C")) {

int indexOf = des.indexOf(':');

if (indexOf != -1) {

des = des.substring(0, indexOf - 1).trim();

}

if (poslen > flag) {

temp = new DefaultMutableTreeNode(des);

branchesNode[(flag - 1) / 2].add(temp);

} else if (poslen == flag) {

temp = new DefaultMutableTreeNode(des);

branchesNode[(flag - 3) / 2].add(temp);

branchesNode[(flag - 1) / 2] = null;

flag -= 2;

} else {

branchesNode[(flag - 1) / 2] = null;

temp = new DefaultMutableTreeNode(des);

flag = poslen;

branchesNode[(flag - 3) / 2].add(temp);

branchesNode[(flag - 1) / 2] = null;

flag -= 2;

}

}

}

} catch (SQLException ex) {

ex.printStackTrace();

}

JTree tree = new JTree();

// DefaultTreeCellRenderer dtcr = (DefaultTreeCellRenderer) tree.getCellRenderer();

// ImageIcon icon = new ImageIcon("D:\\zyy\\unfolding.JPG");

// dtcr.setOpenIcon(icon);

// icon = new ImageIcon("D:\\zyy\\folding.JPG");

// dtcr.setClosedIcon(icon);

tree.setModel(new DefaultTreeModel(root));

tree.setRootVisible(false);

tree.setShowsRootHandles(true);

return tree;

}

public ParamTree() {

}

public ResultSet getParamData() {

ResultSet rs = null;

MysqlUtil mysqlUtil = null;

try {

mysqlUtil = new MysqlUtil("数据库名");

// String sql = "select Param_Position,Param_Type,Description from repax_static_histogram_paramlist order by Param_Position";

String sql = "select 位置62616964757a686964616fe4b893e5b19e31333262346532(0101),类型(B),显示名称 from 表名 order by 位置";

rs = mysqlUtil.execute(sql);

} catch (ClassNotFoundException ex) {

ex.printStackTrace();

} catch (SQLException ex) {

ex.printStackTrace();

} finally {

// if(util!=null){

// util.release();

// }

}

return rs;

}

public static void main(String[] args) throws SQLException {

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

} catch (Exception ex) {

}

ParamTree generateParamTree = new ParamTree();

JTree tree = generateParamTree.generateTree();

JScrollPane jsp = new JScrollPane(tree);

JFrame jf = new JFrame("TREE");

jf.setSize(new Dimension(500, 300));

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jf.add(jsp);

jf.setVisible(true);

}

}

这是一个可直接运行的程序,里面用到一个类mysqlUtil

mysqlUtil是自己写的一个连接mysql数据库的类,你可以自己写一个,反正只要把RS就是你需要的数据读取出来就OK了,把程序里那段sql语句中的表名字段名换成你需要的,这个类是同事写的,我懒得改了,所以需要你对数据库进行一点更改,你那行IBBH就是程序中写到的位置,你需要把那一行所有的数据前面加2个数字,随便加什么,否则不会显示只有2位的记录,另要加一列,区分是叶子结点还是根节点,叶子结点标记为C,非叶子节点标记为B

里面有些不必要的东西,你看懂了删掉也没关系,因为这个是精简了的,我们本身这个类要实现的功能要多一些

本回答由提问者推荐

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值