快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
de( parseXml( text ) ); setModel( new DefaultTreeModel( treeNode ) ); } file://中止XTree()

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

时间:2010-12-16

/**

* 这个方法采用一个DOM 节点,然后在子节点中递归直到所有的接点都被添加到DefaultMutableTreeNode中。

* 这是一个递归方法,为了找到根节点下的每一个子节点,它每次都要调用自己。

* JTree然后就可以使用DefaultMutableTreeNode对象了,因为它已经是树型了。

*

* @参数 root org.w3c.Node.Node

*

* @返回值 返回一个基于根节点DefaultMutableTreeNode对象

*/

private DefaultMutableTreeNode createTreeNode( Node root ) { DefaultMutableTreeNode treeNode = null; String type, name, value; NamedNodeMap attribs; Node attribNode; // 从根节点中取得数据 type = getNodeType( root ); name = root.getNodeName(); value = root.getNodeValue(); treeNode = new DefaultMutableTreeNode( root.getNodeType() == Node.TEXT_NODE ? value : name ); // 显示属性 attribs = root.getAttributes(); if( attribs != null ) { for( int i = 0; i < attribs.getLength(); i++ ) { attribNode = attribs.item(i); name = attribNode.getNodeName().trim(); value = attribNode.getNodeValue().trim(); if ( value != null ) { if ( value.length() > 0 ) { treeNode.add( new DefaultMutableTreeNode( "[Attribute] --> " + name + "=\"" + value + "\"" ) ); } file://end if ( value.length() > 0 ) } file://end if ( value != null ) } file://end for( int i = 0; i < attribs.getLength(); i++ ) } file://end if( attribs != null ) // 如果存在子节点,递归 if( root.hasChildNodes() ) { NodeList children; int numChildren; Node node; String data; children = root.getChildNodes(); // 如果子节点非空的话,只递归 if( children != null ) { numChildren = children.getLength(); for (int i=0; i < numChildren; i++) { node = children.item(i); if( node != null ) { if( node.getNodeType() == Node.ELEMENT_NODE ) { treeNode.add( createTreeNode(node) ); } file://end if( node.getNodeType() == Node.ELEMENT_NODE ) data = node.getNodeValue(); if( data != null ) { data = data.trim(); if ( !data.equals("\n") && !data.equals("\r\n") && data.length() > 0 ) { treeNode.add(createTreeNode(node)); } file://end if ( !data.equals("\n") && !data.equals("\r\n") && data.length() > 0 ) } file://end if( data != null ) } file://end if( node != null ) } file://end for (int i=0; i < numChildren; i++) } file://end if( children != null ) } file://end if( root.hasChildNodes() ) return treeNode; } file://end createTreeNode( Node root )

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

时间:2010-12-16

/**

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

*

* @参数 node org.w3c.Node.Node

*

* @返回值 返回显示节点类的字符串

*/

private String getNodeType( Node node ) { String type; switch( node.getNodeType() ) { case Node.ELEMENT_NODE: { type = "Element"; break; } case Node.ATTRIBUTE_NODE: { type = "Attribute"; break; } case Node.TEXT_NODE: { type = "Text"; break;

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号