您现在的位置是: 软件 > 开发者网络 > 程序方舟 > Java专栏 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

使用Java Swing 创建一个XML编辑器
2001-05-28· ·wayne··yesky

上一页  1 2 3 4 5  下一页


  下面让我们看一下如何使用JTree Swing组件

  我们都知道,在自然界中,一棵树通常都有一个非常粗的树干,树干上有许多树枝分叉。每个树杈和树杈之间都有一定的联系,因为它们都有同一个来源:树干。这种继承的关系并不只在树枝中有,人类谱系也遵循相同的规律。从父母,到子女再到子女的子女,就这样直到数不清为止。同样,在数据存储中,树的概念也是一种使用同人类家谱树一样方法储存数据的方法。树的每一个树杈称为一个节点,每个有子节点的节点称为父节点,所有的子节点的公共的父节点被称为根节点。一个JTree组件就是一个简单的树数据结构的可视化表现形式。

  几乎所有的XML编辑器都包括一个可视化的树结构,能让你编辑XML文档中的元素。我们马上就会构建一个编辑器,不过在此之前,先让我们再了解一下JTree组件。一个节点在一棵树的某个位置储存数据,为了存储数据,必须知道任何一个父节点和它们的子节点。javax.swing.tree包定义了一些非常有用的接口,提供了一种通用的方法构建和操作一个树结构。

  TreeNode方法,用于访问树的节点的信息

  MutableTreeNode方法 用在一个可变的树上(能够添加或删除子节点)

  TreeModel方法 用于创建和管理与树有关的数据模型。

  接下来,我们将创建一个继承JTree的类,提供分析XML文档和用可视化JTree组件把节点显示出来的功能。

  创建XTree组件

  XTree类由一个构造函数和三个方法组成,为了简单起见我们的组件只能构建一个Xtree,在树创建好之后不能进行处理它的节点。下面让我们来看一个这个类。

  域:

  private DefaultMutableTreeNode treeNode 这个成员变量储存TreeNode对象用于存储JTree的模型。 

  DefaultMutableTreeNode类是在javax.swing.tree中被定义的,默认提供了MutableTreeNode接口的一个实现。

  private DocumentBuilderFactory dbf

  private DocumentBuilder db

  private Document doc 这三个成员变量是JAXP的一部分,用来分析XML文本并转化成DOM(Document Object Model) 对象。

  构造函数

  public XTree( String text )

  这个构造函数通过使用传送到构造器中的XML文本创建一个XTree对象。在初始化一些与JTree超类和DOM分析对象有关的基本显示属性后,构造函数生成一个TreeModel 对象用来创建一个实际可视的树。通过把DOM对象传送到createTreeNode()方法来创建一个根节点,createTreeNode()方法返回一个DefaultMutableTreeNode类型的对象。这个对象然后被用来创建树的TreeModel。

  方法

   private DefaultMutableTreeNode createTreeNode( Node root )

  这个方法采用一个DOM 节点,然后在子节点中递归直到所有的接点都被添加到DefaultMutableTreeNode中。这是一个递归方法,为了找到根节点下的每一个子节点,它每次都要调用自己。JTree然后就可以使用DefaultMutableTreeNode对象了,因为它已经是树型了。

   private String getNodeType( Node node )

  这个方法,被createTreeNode()用来联系一个字符串和某一种类型的节点。

   private Node parseXml()

  这个方法,用来分析XML文本字符串,它返回Node类型的对象,能够被传送到createTreeNode()方法中。

上一页  1 2 3 4 5  下一页

【责任编辑:方舟 】
【发表评论】【关闭窗口】
■ 相关内容
 用JAVA实现线程等待提示框
 使用Java Swing创建一个XML编辑器之三
 使用Java Swing创建一个XML编辑器之二
 学习使用XML引擎XQEngine
 使用JavaBean高效处理JSP
 用ASP+XML打造留言本
 制作安装程序的好工具Setup Factory
 用 Java 保存位图文件
 Java布局管理器深入讨论
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!