`

绘制一棵树

阅读更多
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));
*/
分享到:
评论
2 楼 laozhao 2009-12-02  
佩服佩服!
1 楼 laozhao 2009-12-02  
妈啊!我纠结了这么久的问题,你用这么简单的一句就完成了?原来这个世界真的有捷径这种东西。

相关推荐

    flex 绘制一棵树

    在别的网站看到的,觉得不错,给大家看看,好的东西,大家分享。

    1_python动态绘制一棵树_

    在Python编程语言中,动态绘制一棵树是一种可视化技术,它可以帮助我们更好地理解数据结构或算法的层次关系。本文将深入探讨如何使用Python实现这一功能,主要关注如何利用库如`networkx`、`matplotlib`或者自定义...

    Python+Turtle动态绘制一棵树实例分享

    ### Python+Turtle动态绘制一棵树实例解析 在学习编程语言的过程中,利用图形化的方式进行实践不仅能够加深对编程逻辑的理解,还能够提高学习的兴趣。Python 的 `turtle` 模块正是这样一个简单易用的图形绘制工具,...

    opengl 做的很漂亮的一棵树,用分形算法实现 含代码

    在这个项目中,我们看到使用OpenGL和分形算法来生成一棵逼真的树。分形算法是一种在数学和计算机科学中广泛使用的工具,特别适用于创建复杂且自相似的自然形状。 分形算法的核心概念是重复和自相似性。在自然界中,...

    计算机图形学绘制一颗树

    下面,我们将深入探讨如何利用C语言和图形库来绘制一棵树,这涉及到的知识点包括但不限于坐标系统、三角函数、递归算法以及图形库的应用。 ### 1. 坐标系统 在计算机图形学中,坐标系统是描绘图像的基础。大多数...

    tree-draw:绘制一棵树(树干,四肢,树枝等)并进行编辑以及影响其外观的属性

    树画 绘制一棵树(树干,四肢,树枝等)并进行编辑,并影响其外观的属性

    一个VB图形绘制实例

    下面将详细阐述如何通过VB实现图形绘制,以绘制一棵大树为例。 首先,你需要创建一个新的VB项目,选择窗体应用程序。在窗体设计阶段,你无需添加任何控件,因为我们将直接在窗体的Paint事件中进行图形绘制。在窗体...

    画图教程5 画小树

    ### IT知识点:使用微软画图程序绘制小树的步骤与...通过以上步骤和技巧的介绍,我们不仅学会了如何在微软画图程序中绘制一棵小树,更掌握了基础绘画工具的使用方法,为进一步探索图形设计和数字艺术打下了坚实的基础。

    opengl绘制树

    在OpenGL中绘制树是一项复杂的任务,它涉及到几何建模、纹理映射、光照处理等多个方面。以下是一些关于使用OpenGL绘制树的关键知识点: 1. **几何建模**:在OpenGL中,树的形状通常通过多边形来表示。这可能包括...

    关于LKH算法的图论知识

    实际上,无论我们如何绘制一棵树,只要节点数量超过1,这棵树总会有一些叶子节点。 接下来,我们通过反证法来证明,每一个节点数大于1的树都至少有一个叶子节点。假设存在一棵树T,其中每个节点的度至少为2。设P为T...

    我们的朋友——大树学习教案.pptx

    西安交通大学出版社出版的小学信息技术三年级下册的教案,为我们提供了一个全新的视角,通过“我们的朋友——大树”这一主题,让孩子们在绘制一棵大树的过程中学习计算机画图软件的使用,实现信息技术的基本技能训练...

    如何使用 vue + d3 画一棵树

    本文将详细讲解如何利用Vue.js与D3.js绘制一棵树形结构的图表。 D3.js 是一个基于JavaScript的库,它提供了一系列用于操作文档对象模型(DOM)的工具,并能够利用这些工具根据数据动态生成、修改和操作文档结构。D3...

    爱护花草树木手抄报

    "爱护花草树木"的主题可以通过直观的视觉元素来表达,如绘制一棵生机盎然的大树,象征生命的繁茂和成长。在大树的旁边,可以添加各类花朵和小动物,展现生态的多样性。 2. **布局规划** - **左页**:选择左侧为...

    纯js实现画一棵树的示例

    这里提到的"纯js实现画一棵树的示例",主要是利用HTML5的`<canvas>`元素结合JavaScript的定时器来实现动态的遮罩效果,从而达到画树的视觉效果。现在,我们将详细解析这个过程和其中涉及的知识点。 首先,我们需要...

    QT实现圣诞节日主题特效代码,绘制一棵装饰性圣诞树

    QT实现圣诞节日主题特效代码,绘制一棵装饰性圣诞树。程序首先使用绘图类绘制圣诞树框架,UI界面在圣诞树框架内放置多个QLabel控件用来放置多个圣诞装饰品,定时器实现装饰物动态变化效果。

    画树形图法求概率.ppt

    这时,我们可以绘制一棵树,从根节点开始,每个分支代表一个口袋中的一个选择,直到达到叶子节点,表示所有可能的组合。通过这种方式,我们可以轻松计算出所有可能的情况,以及满足特定条件的结果概率,比如所有小球...

    画一棵树

    本项目标题为“画一棵树”,其核心是利用C#语言和WinForms控件实现一个高效的树图绘制算法,以简洁的代码实现惊艳的视觉效果。 首先,我们要理解树形图的基本概念。树是一种非线性的数据结构,由节点和边组成,每个...

    开发语言 Python编程 圣诞树教程 (附代码)程序员的浪漫 -.pdf

    - **函数封装**:可以定义一个函数专门用来绘制一棵树的某一部分,提高代码的复用性和可读性。 - **参数化**:可以通过传入不同的参数来改变树的形状和大小,使得代码更加灵活。 #### 6. 程序调试与测试 - **调试**...

    基于python的数据可视化-20-递归代码实现.ev4.rar

    例如,如果你正在绘制一棵树,递归函数可能会接受当前节点作为输入,首先绘制该节点,然后对每个子节点递归调用自身。这个过程会持续到没有子节点为止,即达到了基本情况。 在Python中,递归需要注意防止栈溢出,...

Global site tag (gtag.js) - Google Analytics