快速业务通道

使用Java Swing创建一个XML编辑器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
变的树上(能够添加或删除子节点)

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) 对象。

使用Java Swing创建一个XML编辑器(2)

时间:2010-12-16

构造函数

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()方法中。

下面我给出了java代码,供大家分析研究。

// 到入W3C的DOM 类 import org.w3c.dom.*; // JAXP的用于DOM I/O的类 import javax.xml.parsers.*; // 标准Java类 import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class XTree extends JTree { /** * 这个成员变量储存TreeNode对象用于存储JTree的模型。 *DefaultMutableTreeNode类是在javax.swing.tree中被定义的 *默认提供了MutableTreeNode接口的一个实现。 */ private DefaultMutableTreeNode treeNode; /** * 这三个成员变量是JAXP的一部分,用来分析XML文本并转化成DOM(Document Object Model) 对象。 */ private DocumentBuilderFactory dbf; private DocumentBuilder db; private Document doc;

/**

* 这个构造函数通过使用传送到构造器中的XML文本创建一个XTree对象

* @参数 text是一个XML格式的XML文本

* @异常 ParserConfigurationException 如果构造函数非正常的设置分析器,就会抛出异常

*/

public XTree( String text ) throws ParserConfigurationException { super(); // 设置Tree渲染的基本属性 getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION ); setShowsRootHandles( true ); setEditable( false ); // 允许树可以编辑 // 通过初始化对象的DOM来分析对象 dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating( false ); db = dbf.newDocumentBuilder(); // 采用DOM根节点并且把它转化成JTree的树模型 treeNode = createTreeNo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号