亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 使用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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99热99| 日韩三级中文字幕| 成人在线综合网站| 久久不见久久见中文字幕免费| 亚洲精品国产一区二区精华液| 久久蜜臀精品av| 欧美www视频| 日韩欧美一二三四区| 欧美日韩精品专区| 欧美色欧美亚洲另类二区| 一本色道久久综合亚洲aⅴ蜜桃| 国产91精品一区二区| 久久99精品国产麻豆婷婷洗澡| 婷婷夜色潮精品综合在线| 亚洲一区二区四区蜜桃| 一区二区高清视频在线观看| 久久久久国产成人精品亚洲午夜| 欧美第一区第二区| 欧美电影一区二区| 日韩欧美一区在线| 26uuu精品一区二区在线观看| 日韩久久免费av| 国产日韩高清在线| 日本一区二区久久| 亚洲精品乱码久久久久久日本蜜臀| 亚洲欧洲www| 亚洲h在线观看| 麻豆精品久久久| 国产91高潮流白浆在线麻豆 | 国产成人综合在线观看| 不卡的av在线播放| 欧美人牲a欧美精品| 日韩欧美中文一区二区| 亚洲精品一区二区三区香蕉| 中文字幕+乱码+中文字幕一区| 国模少妇一区二区三区| 毛片基地黄久久久久久天堂| 成人国产精品免费观看| 欧美专区在线观看一区| 欧美成人艳星乳罩| 国产精品久久99| 免费看日韩精品| 不卡的电影网站| 91麻豆精品国产91久久久使用方法| 久久影音资源网| 国产成人免费在线| 91高清在线观看| 久久嫩草精品久久久久| 亚洲精品国产一区二区精华液| 老司机午夜精品| 欧美性生交片4| 国产女人18水真多18精品一级做| 婷婷中文字幕综合| 色综合久久久久| 国产色产综合产在线视频 | 久久综合九色综合久久久精品综合| 国产精品护士白丝一区av| 精品一区二区三区免费播放| 色94色欧美sute亚洲线路一久| 久久综合久久99| 日韩在线观看一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 精品久久五月天| 青青草一区二区三区| 欧美日韩一区二区欧美激情| 亚洲欧美日韩中文字幕一区二区三区| 久久不见久久见中文字幕免费| 欧美日韩亚洲综合| 一区二区三区自拍| 99re免费视频精品全部| 亚洲国产精品传媒在线观看| 久久国产麻豆精品| 日韩欧美综合一区| 日韩高清欧美激情| 欧美一区二区三区系列电影| 日韩一区精品视频| 欧美久久高跟鞋激| 亚洲va欧美va国产va天堂影院| 91激情在线视频| 亚洲一卡二卡三卡四卡五卡| 一本大道综合伊人精品热热 | 日韩欧美成人激情| 麻豆精品一区二区综合av| 日韩三级中文字幕| 狠狠色狠狠色综合| 久久免费国产精品| 成人听书哪个软件好| 国产精品国产a| 91成人网在线| 免费精品视频在线| 国产欧美视频一区二区| 99r精品视频| 午夜精品久久久久久| www国产精品av| 波多野结衣亚洲| 亚洲国产精品一区二区久久恐怖片| 欧美伦理视频网站| 亚洲第一搞黄网站| 777午夜精品视频在线播放| 婷婷激情综合网| 色8久久人人97超碰香蕉987| 日韩精品一区二| 欧美国产日韩在线观看| 亚洲一卡二卡三卡四卡五卡| 欧美精品丝袜久久久中文字幕| 成人免费视频国产在线观看| 久久国产视频网| 亚洲国产精品麻豆| 专区另类欧美日韩| 国产精品午夜在线观看| 精品国产乱码久久久久久1区2区 | 欧美亚洲一区三区| eeuss鲁片一区二区三区在线观看| 精品一区二区久久久| 天天亚洲美女在线视频| 亚洲综合丁香婷婷六月香| 亚洲精选在线视频| 一区二区在线看| 日韩美女在线视频| 在线观看不卡视频| 成人免费av资源| 九九国产精品视频| 亚洲一卡二卡三卡四卡无卡久久| 久久久精品黄色| 欧美人动与zoxxxx乱| 不卡大黄网站免费看| 久久国产三级精品| 日韩av电影天堂| 一区二区三区不卡在线观看| 久久久国产精华| 精品国产制服丝袜高跟| 欧美高清视频不卡网| 91免费观看在线| 国产91露脸合集magnet| 国产老妇另类xxxxx| 青青草成人在线观看| 三级不卡在线观看| 亚洲va韩国va欧美va| 一区二区成人在线观看| 最新国产成人在线观看| 中文字幕亚洲在| 欧美国产视频在线| 国产精品高清亚洲| 亚洲欧美偷拍卡通变态| 国产精品丝袜一区| 日本一区二区三区dvd视频在线| 久久久久久久综合日本| 久久精品这里都是精品| 日本一区二区三区免费乱视频| 久久综合久久99| 国产精品国产三级国产aⅴ中文 | 日韩一级大片在线观看| 欧美一区二区三区白人 | 欧美熟乱第一页| 欧美性大战久久久久久久| 欧美日韩美少妇| 日韩欧美国产小视频| 久久久久久亚洲综合| 最新日韩av在线| 一区二区三区资源| 捆绑调教美女网站视频一区| 国产福利一区二区| 色999日韩国产欧美一区二区| 欧美日韩国产成人在线91| 欧美成人一区二区三区| 国产精品美女一区二区三区| 一区二区三区av电影| 精品亚洲porn| 色综合久久88色综合天天免费| 91精品视频网| 国产精品传媒入口麻豆| 视频一区二区不卡| 99这里都是精品| 精品日韩成人av| 一区二区免费在线播放| 国产成人免费xxxxxxxx| 制服丝袜日韩国产| 亚洲综合一区二区三区| 成人午夜电影久久影院| 2欧美一区二区三区在线观看视频| 一区二区三区四区在线播放| 国产九色sp调教91| 日韩一区二区免费视频| 亚洲免费在线视频一区 二区| 国产一区久久久| 日韩限制级电影在线观看| 一区二区欧美视频| caoporn国产一区二区| 欧美精品一区二区三区蜜桃| 亚洲成人一区二区在线观看| 不卡的av中国片| 国产三级精品视频| 韩国精品一区二区| 亚洲精品一区二区三区在线观看| 日韩二区三区四区| 91精品国产综合久久香蕉的特点| 亚洲a一区二区| 欧美男同性恋视频网站| 亚洲在线观看免费视频| 91啪九色porn原创视频在线观看|