绘制一棵树

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.sql.*;
import java.util.*;
public class drawing{
 public static void main(String[] args) {
  JFrame frame = new TreeEditFrame();
  frame.setLocationRelativeTo(null);
  frame.show();
 }
}
class TreeEditFrame extends JFrame {
 private DefaultTreeModel model;
 private JTree tree;
 public TreeEditFrame() {
  setTitle("Build Tree");
  setSize(300, 200);
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
  });
  // construct tree
  TreeNode root = makeSampleTree();
  model = new DefaultTreeModel(root);
  tree = new JTree(model);
  // tree.setEditable(true);
  // add scroll pane with tree to content pane
  Container contentPane = getContentPane();
  JScrollPane scrollPane = new JScrollPane(tree);
  contentPane.add(scrollPane, "Center");
 }
 public TreeNode makeSampleTree() {
  DefaultMutableTreeNode root = new DefaultMutableTreeNode("所有节点");
  String JDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
  String connectionURL = "jdbc:odbc:OracleTest";
  Map staff = new HashMap();
  try {
   Class.forName(JDriver);
  } catch (ClassNotFoundException e) {
   System.out.println("ForName:" + e.getMessage());
  }
  try {
   Connection con = DriverManager.getConnection(connectionURL,
     "scott", "tiger");
   Statement stmt = con.createStatement();
   ResultSet rs = stmt
     .executeQuery("select * from scott.tree order by ParentID,ID");
   while (rs.next()) {
    int i = rs.getInt("ID");
    int j = rs.getInt("ParentID");
    String str = rs.getString("Text");
    DefaultMutableTreeNode ParentId = (DefaultMutableTreeNode) staff
      .get(new Integer(j));
    DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(str);
    if (ParentId != null)
     ParentId.add(newNode);
    else
     root.add(newNode);
    staff.put(new Integer(i), newNode);
   }
   stmt.close();
   con.close();
  } catch (SQLException e) {
   System.out.println("SQLException:" + e.getMessage());
  }
  return root;
 }
}
/*
 * create table SCOTT.TREE ( ID INTEGER not null, PARENTID INTEGER not null,
 * TEXT VARCHAR2(50) default '' not null, EXPLAIN VARCHAR2(100));
 */
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值