⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用java swing创建一个xml编辑器之二.txt

📁 javaSwing编程
💻 TXT
📖 第 1 页 / 共 2 页
字号:
使用Java Swing创建一个XML编辑器之二_应用篇_建站学院[最新动态]赛酷网急聘客服人员,详情进入首 页 ┊ 论 坛 ┊ 博 客 
            ┊ 供 求 ┊ 商 城 ┊ 酷 站 ┊ 广告联系  


                  下载:源码 软件 模板 素材 动易软件产品:建网站 建商城 域名注册 虚拟主机 托管 邮局



                  资讯:学院 IT资讯 域名资讯 电子商务增值:域名策划 网站设计|维护 网站推广|优化|营销



            站外搜索:    百度  google
         站内搜索:    文章  下载  图片

      ┊建站学院┊建站指南┊网页制作┊设计之窗┊seo专区┊数据库┊服务器┊网络安全┊ASP技术┊PHP技术┊JSP技术┊NET技术┊CGI技术┊
      ┊建站资源┊ ASP源码┊ PHP源码┊.NET源码┊JSP源码┊CGI源码┊FLASH源码┊韩国模板┊欧美模板┊素材大全┊ 站长软件┊书籍教程┊
                  www.    .com¥55  .cn¥25  .mobi  cn域名15元,立即抢注    
                  300M空间+100M邮局=100元



 








      您现在的位置: 赛酷网络 >> 建站学院 >> JSP >> 应用篇 >> 文章正文 用户登录  新用户注册 
            使用Java Swing创建一个XML编辑器之二          ★★★★【字体:小 大】

      使用Java Swing创建一个XML编辑器之二

      作者:佚名    文章来源:赛酷建站    点击数:168    更新时间:2006-8-20

                  这是本系列的第二篇文章。在上一篇文章中,我们简要地讨论了XML以及为什么一个树形结构适合显示XML、如何处理XML数据、如何使用JTree 
                  Swing 组件以及如何创建一个可重用的能够分析XML文档以及在Jtree显示数据的组件。 



                    在本文中,我们将创建我们的XML编辑器的框架,为了达到这个目的,我们将用到许多Swing组件(包括JsplitPane、JscrollPane、Jbutton和JtextArea组件)。 




                    一、问题的提出与解决 



                    我如何创建一个能够浏览文本和浏览视图的XML文本编辑器呢?创建一个包含Jbutton和JsplitPane的Jframe对象, 
                  然后让JsplitPane对象包含两个JscrollPane对象,一个用于浏览图形(xTree类),另一个用于浏览文本(JtextArea类)。Jbutton用来管理刷新图形浏览的操作。 




                    二、增强Xtree类的功能 



                    在上一篇文章中,我们开发了Xtree类,这是一个可重用的组件,继承于Jtree类并能够把XML数据以图形树的形式显示。我们现在就增强这个类, 
                  通过提供给它一个在显示默认的XML树来We will now enhance that class by providing 
                  it with a default XML 

                  tree to display in the event that an XML file is not supplied 
                  at the command-line. 而且,我们还将添加一些错误处理逻辑以便程序不会因为无效的XML而崩溃。 



                    第一步是创建一个名为buildTree()的方法: 



                  private DefaultTreeModel buildTree( String text ) 



                  { 



                   DefaultMutableTreeNode treeNode; 



                   Node newNode; 



                   // 采用DOM根节点并把它转化成为一个Tree模型 



                   newNode = parseXml( text ); 



                   if ( newNode != null ) 



                   { 



                    treeNode = createTreeNode( newNode ); 



                    return new DefaultTreeModel( treeNode ); 



                   } 



                   else 



                    return null; 



                   } //结束buildTree() 





                    这个方法取得传入的 XML字符串,分析这个 
                  XML字符串并构造一个可以用来从数据中构造图形树形结构的DefaultTreeModel变量实例。这个功能原来包含在 
                  XTree()构造程序中,但是我们把它拿出来然后把它放进一个单独的方法中,这样我们就有了创建一个默认图形树的伸缩性。这就是我们接下来想做的事。 


                  接下来一步是创建一个叫 
                  buildWelcomeTree()的方法。这个方法一次构建一个DefaultTreeModel变量,而不是通过分析一个现有的XML文字字符串。如果用户没有指定 
                  XML文件就启动这个应用程序,将显示 DefaultTreeModel。见代码段1 



                    代码段1: 



                  private DefaultTreeModel buildWelcomeTree() 

                  { 

                   DefaultMutableTreeNode root; 

                   DefaultMutableTreeNode instructions, openingDoc, 

                               editingDoc, savingDoc; 

                   DefaultMutableTreeNode openingDocText, editingDocText, 

                               savingDocText; 

                   DefaultMutableTreeNode development, addingFeatures, 

                               contactingKyle; 



                   root = new DefaultMutableTreeNode( \"Welcome to XML View 
                  1.0\" ); 

                   instructions = new DefaultMutableTreeNode( \"Instructions\" 
                  ); 

                   openingDoc = new DefaultMutableTreeNode 

                               ( \"Opening XML Documents\" ); 

                   openingDocText = new DefaultMutableTreeNode 

                               ( \"When invoking the XmlEditor from 

                   the command-line, you must specify the filename.\" ); 

                   editingDoc = new DefaultMutableTreeNode 

                               ( \"Editing an XML Document\" ); 

                   editingDocText = new DefaultMutableTreeNode 

                               ( \"XML text in the right hand frame 

                               can be edited directly. 

                               The \\\"refresh\\\" button will rebuild 

                               the JTree in the left frame.\" ); 

                   savingDoc = new DefaultMutableTreeNode 

                               ( \"Saving an XML Document\" ); 

                   savingDocText = new DefaultMutableTreeNode 

                              ( \"This iteration of the XmlEditor does 

                                not provide the ability to save your 

                                document. That will come with the 

                                next article.\" ); 

                   root.add( instructions ); 

                   instructions.add( openingDoc ); 

                   instructions.add( editingDoc ); 

                   openingDoc.add( openingDocText ); 

                   editingDoc.add( editingDocText ); 

                   return new DefaultTreeModel( root ); 

                  } 



                    接下来的我们需要添加一个新的构造程序来简化默认显示功能,我们将修改主构造程序,这样它就不能接受任何参数,创建一个新的能接收单一的 
                  XML文本字符串的构造程序。这样以来,如果没有 XML文本被显示的话就会创建默认 XTree对象,而如果 
                  XML文本被显示的话将创建一个唯一的 XTree对象。代码段2中给出了两个构造程序。 



                    代码段2: 



                  public XTree( String text ) throws 
                  ParserConfigurationException 

                  { 

                   this(); 

                   refresh( text ); 

                   } 

                  public XTree() throws ParserConfigurationException 

                  { 

                   super(); 

                   getSelectionModel().setSelectionMode( 

                       TreeSelectionModel.SINGLE_TREE_SELECTION ); 

                   setShowsRootHandles( true ); 

                   setEditable( false ); 

                   dbf = DocumentBuilderFactory.newInstance(); 

                   dbf.setValidating( false ); 

                   db = dbf.newDocumentBuilder(); 

                   setModel( buildWelcomeTree() ); 

                  } 

                  三、创建 XmlEditor类 



                    XmlEditor类与前面的那篇文章的XTreeTester类有相同的用途,不同之处在于 XmlEditor包括一个 
                  JTextArea,允许你操作文本版XML。之后,你可以点击 “Refresh”按钮并查看 XTree组件中反映出来的变化。 




                    如果直接修改第一篇文章中的代码,你就能节省很多时间,你可以把 XTreeTester.java文件重命名为 
                  XmlEditor.java (不过一定要修改构造程序 )并把它当成模板文件。 



                    要做的第一件事是添加下列 Swing组件:另一个 JScrollPane、 JSplitPane、 JTextArea和 
                  JButton。通过声明所有的这些组件以及其他组件开始(看代码段3)。 



                    代码段3: 



                  private XTree xTree; 

                  private JScrollPane jScroll, jScrollRt; 

                  private JSplitPane splitPane; 

                  private JButton refreshButton; 

                  private WindowListener winClosing; 



                    首先,我们将创建并添加“ Refresh”按钮。这个按钮用来指示这个 XTree组件将使用当前 
                  XML文本来刷新。我们还需要使用一个ActionListener来注册它。(参见代码段 4 ) 
                  为了拦截按钮事件,我们需要有这个类还要实现 ActionListener,而且我们还需要创建一个 
                  actionPerformed()方法 (参见代码段 5 )。 



                    代码段4: 



                  refreshButton = new JButton( \"Refresh\" ); 

                  refreshButton.setBorder( 

                    BorderFactory.createRaisedBevelBorder() ); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -