基于java的文本編輯軟件的設計與實現(xiàn)
《基于java的文本編輯軟件的設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《基于java的文本編輯軟件的設計與實現(xiàn)(135頁珍藏版)》請在裝配圖網上搜索。
1、平頂山學院本科畢業(yè)設計 目 錄 1 緒論 1 1.1課題研究的背景及意義 1 1.2 文本編輯器軟件的應用現(xiàn)狀 1 1.3 本文工作和結構安排 2 1.3.1 本文主要工作 2 1.3.2 本文結構安排 3 1.4 小結 3 2 相關技術介紹 4 2.1 Java技術 4 2.1.1 Java特點 4 2.1.2 程序開發(fā)常用包 5 2.2 小結 6 3 系統(tǒng)分析與設計 7 3.1 軟件需求分析 7 3.2 系統(tǒng)類設計 8 3.3 系統(tǒng)總體設計 13 3.3.1 設計原理 15 3.3.2 功能模塊劃分 15 3.4 小結 17 4 詳細設計
2、與實現(xiàn) 18 4.1 系統(tǒng)開發(fā)平臺及工具選擇 18 4.2 主窗體設計與實現(xiàn) 18 4.3 新建功能設計與實現(xiàn) 20 4.3.1 新建功能概述 20 4.3.2 新建功能技術分析 20 4.3.3 新建功能實現(xiàn)過程 21 4.4 打開功能設計與實現(xiàn) 21 4.4.1 打開功能概述 21 4.4.2 打開功能技術分析 21 4.4.3 打開功能實現(xiàn)過程 22 4.5保存功能設計與實現(xiàn) 22 4.5.1 保存功能概述 22 4.5.2 保存功能技術分析 22 4.5.3 保存功能實現(xiàn)過程 23 4.6 全選功能設計與實現(xiàn) 23 4.6.1 全選功能概述 23 4.
3、6.2 全選功能技術分析 23 4.6.3 全選功能實現(xiàn)過程 23 4.7 退出功能設計與實現(xiàn) 24 4.7.1 退出功能概述 24 4.7.2 退出功能技術分析 24 41 4.7.3 退出功能實現(xiàn)過程 24 4.8 查找功能設計與實現(xiàn) 25 4.8.1 查找功能概述 25 4.8.2 查找功能技術分析 25 4.8.3 查找功能實現(xiàn)過程 25 4.9 查找下一個功能設計與實現(xiàn) 26 4.9.1 查找下一個功能概述 26 4.9.2 查找下一個功能技術分析 26 4.9.3 查找下一個功能實現(xiàn)過程 26 4.10 替換功能設計與實現(xiàn) 27 4.
4、10.1 替換功能概述 27 4.10.2 替換功能技術分析 27 4.10.3 替換功能實現(xiàn)過程 28 4.11 設置字體功能設計與實現(xiàn) 28 4.11.1 設置字體功能概述 28 4.11.2 設置字體功能技術分析 28 4.11.3 設置字體功能實現(xiàn)過程 28 4.12 編譯功能設計與實現(xiàn) 29 4.12.1 編譯功能概述 29 4.12.2 編譯功能技術設計 29 4.12.3 編譯功能實現(xiàn)過程 30 4.13 運行功能設計與實現(xiàn) 30 4.13.1 運行功能實現(xiàn)概述 30 4.13.2 運行功能技術分析 30 4.13.3 運行功能實現(xiàn)過
5、程 31 4.14 獲取系統(tǒng)時間功能設計與實現(xiàn) 31 4.15 復制功能設計與實現(xiàn) 31 4.16 剪切功能設計與實現(xiàn) 32 4.17 粘貼功能設計與實現(xiàn) 32 4.18 幫助功能設計與實現(xiàn) 32 4.19 小結 33 5測試目的 34 5.1測試目的 34 5.2 功能測試 34 5.3界面測試 34 5.4 小結 36 6 結束語 37 6.1 總結 37 6.2 展望 37 附 錄 38 參考文獻 40 致 謝 41 1 緒論 本章是論文的序言部分,將論述論文研究的背景
6、、意義、研究現(xiàn)狀以及論文要完成的工作。文本編輯器的應用是編寫文本的重要編輯軟件,良好的界面以及使用方便是重要前提,通過對現(xiàn)有的應用現(xiàn)狀的分析,提出了本課題的研究方向。最后將給出本文的主要組織結構,從整體上闡述論文的工作。 1.1 課題研究的背景及意義 隨著計算機技術的不斷發(fā)展,文本編輯器已成為大家必不可少的工具,但是不同的用戶對文本編輯器有不同的功能需求,除了像Office中的word還有WPS等大眾文本編輯器,還需要一些操作簡單,幫助電腦初學者的文本編輯器。市場上出現(xiàn)的和用戶所使用的文本編輯器種類繁多,功能也是各式各樣,其中有相當一部分是很優(yōu)秀的[1]。例如,word軟件提供了可以編輯文
7、字圖形、圖像、聲音、動畫,還可以插入其他軟件的制作信息;提供了強大的制表功能;提供了大量的模板;提供了web工具的支持等,WPS也提供了強大的文本編輯功能。但是電腦初學者學習word和WPS是非常困難的,很多功能都不知道如何使用,如在文本中的頁碼問題、頁眉問題、格式問題等。因此開發(fā)一個操作簡單,易于學習的文本編輯軟件對電腦初學者顯得較為重要。 1.2 文本編輯器軟件的應用現(xiàn)狀 信息化時代的步伐加快了我們的生活腳步,也提高了我們的生活質量和工作效率。文本編輯器軟件作為大家編輯文本的重要工具,基本上代替了手寫,利用文本編輯軟件可以高效的進行文本的編輯。這種工作方式已經成為當下重要工作的模式之一
8、。 文本編輯軟件能夠幫助人們適應現(xiàn)在的高速度的生活,能夠對用戶編輯的文本進行打開、修改、替換、查找、粘貼、復制、剪切和保存等功能,能夠更加快速的完成工作,幫助用戶提高工作效率?,F(xiàn)在有太多的文本編輯軟件,而且文本編輯軟件有的功能繁多,學習它們的功能需要發(fā)費很長的時間,并且很多功能是不容易學習的。對于文本編輯的電腦初學者來說不知道如何使用這些功能強大的文本編輯軟件,并且學起來不是很容易,而他們只需要會使用文本編輯軟件的基礎功能[2]。因此設計一個操作簡單,易于學習,界面優(yōu)美的文本編輯器是現(xiàn)在文本編輯軟件應該解決的問題。 1.3 本文工作和結構安排 針對文本編輯器軟件的開發(fā)過程,本文在軟件工程
9、理論的指導下,以一個實際文本編輯器開發(fā)為背景,提出一種基于Java技術的文本編輯器的設計與實現(xiàn)方案,并進行文本編輯器軟件的設計開發(fā)實踐。該小節(jié)概述本文主要工作和結構安排。 1.3.1 本文主要工作 本文主要研究并完成基于Java語言的文本編輯軟件的設計與實現(xiàn)。本文針對現(xiàn)有軟件存在的一些問題,在軟件工程理論指導下,進行文本編輯器軟件的分析、設計與實現(xiàn),并詳細討論了軟件實現(xiàn)過程當中的相關技術。具體工作內容如下: 1.文本編輯軟件的需求分析 本文在軟件工程理論的指導下,通過實地調研去了解文本編輯人員對文本編輯軟件的各種功能需求,總結現(xiàn)有編輯人員的工作流程,分析現(xiàn)有文本編輯器的問題,最后確定本
10、文要完成的文本編輯器軟件。 2.文本編輯器軟件的類設計 本文針對項目的需求,通過深入比較己有的基礎架構,分析研究Java所能采用具體技術的優(yōu)缺點與適用情況,對整個軟件所需要的類進行了設計,對各個模塊的功能進行了定義和劃分。軟件采用Java技術,以Windows自帶的記事本為開發(fā)平臺。 3.文本編輯軟件的設計 文本編輯軟件的設計遵循低耦合,高聚合的模塊劃分原則,把具有復雜功能的軟件通過設計分解為具有基本獨立,功能簡單,易于實現(xiàn)等特點的文件、操作、格式、演示,格式、幫助等多個功能模塊,并詳細闡述了每個模塊的功能設計。 4.文本編輯軟件的實現(xiàn) 該部分的工作主要包含以下4個方面: (1)
11、 功能的實現(xiàn),文本編輯軟件要實現(xiàn)用戶的基本需求,要實現(xiàn)文本編輯器的主要功能,包括新建功能、打開功能、保存功能、全選功能、復制功能、剪切功能、粘貼功能、查找功能、替換功能和幫助功能。 (2) 詳細闡述文本編輯軟件實現(xiàn)過程中的相關技術問題,這些相關技術問題包括Java語言的掌握以及使用、各個功能模塊的實現(xiàn)、主界面的設計。 (3) 文本編輯軟件的開發(fā)平臺及工具的選擇,選用windows自帶的記事本進行業(yè)務實現(xiàn),Java虛擬機作為后臺支持。軟件使用Java語言編寫代碼,采用Java的GUI(圖形用戶界面)窗體進行的主窗體的開發(fā)。 (4) 文本編輯軟件的測試,編制詳細完善的測試用例并進行測試,以保
12、證系統(tǒng)的質量。 通過上述研究擬達到如下預期目標: 通過文本編輯軟件的開發(fā)和設計,滿足文本編輯人員需要,為文本編輯用戶提供一個良好的編輯界面,提高用戶的工作效率。 1.3.2 本文結構安排 本軟件是通過對現(xiàn)有文本編輯器本身的特點,主要作用等各方面進行全面綜合的了解,分析,歸納和總結,結合文本編輯器的主要功能,開發(fā)的應用軟件。本文詳細介紹了軟件的開發(fā)過程和各個模塊的功能。運用面向對象的方法進行軟件分析和軟件設計。 本文主要分六個部分的內容: 1 緒論:本章主要介紹了課題研究的背景及意義、文本編輯軟件的應用現(xiàn)狀和論文的工作和結構安排。 2 相關技術介紹:本章主要介紹了Java技術,從
13、Java特點和Java程序的開發(fā)常用包來說明。 3 系統(tǒng)分析與設計:本章主要講的是系統(tǒng)的功能需求分析、系統(tǒng)類設計和系統(tǒng)的總體設計。 4 詳細設計與實現(xiàn):本章主要講的是系統(tǒng)開發(fā)平臺及工具的選擇和主窗體的設計和軟件的主要功能的設計以及軟件的詳細實現(xiàn)。 5 測試:本章主要講的是系統(tǒng)的功能測試和界面測試,達到預期的功能效果。 6 結束語:本章主要講的是總結、展望。總結本文的主要工作和對未來工作的展望。 1.4 小結 本章首先介紹了本軟件研究的背景及意義,研究現(xiàn)狀,幫助了解該課題需要完成的功能,最后介紹了論文主要工作和結構安排,以便于可以在保證論文質量的前提下按照計劃順利地完成本論文的撰寫。
14、 2 相關技術介紹 軟件開發(fā)的實踐過程離不開理論的指導和工具的應用。本章將主要介紹文本編輯軟件設計和實踐過程中使用到的Java軟件技術理論知識。通過對開發(fā)技術知識的深入研究,為該系統(tǒng)的設計與實現(xiàn)做好充分的知識準備。 2.1 Java技術 2.1.1 Java特點 Java是一個簡單的、面向對象的、分布的、健壯的、安全的、與平臺無關的、可移植的、高性能的、多線程的,以及動態(tài)的解釋型語言[3]。 由于Java最初是為控制電子產品設計的,因此它簡單明了。為了保證這種簡單性,Java去掉了C++中許多復雜的、冗余的、有二義性的概念,例如操作符重載、多繼承、數(shù)據類型自動轉換等。為了將程
15、序員從復雜的內存管理的負擔中解脫出來,同時也是為了減少錯誤,Java使用了自動內存垃圾收集機制,程序員只要在需要的時候申請即可,不需要釋放,而由Java自己來收集、釋放內存中的無用的塊[4]。 1.Java是一種支持分布式操作的程序設計語言。使用Java提供的URL類,用戶可以象訪問本地文件一樣訪問網絡上的對象,使用非常方便。在客戶機/服務器的模式下,Java還可以將運算從服務器端分散到客戶端,提高系統(tǒng)的效率,避免了服務器的瓶頸制約。Java的網絡類庫支持分布式的編程。Socket類提供可靠的流式網絡的連接,支持TCP/IP協(xié)議。通過編寫協(xié)議句柄,程序員還可以擴充Java支持的協(xié)議集合。
16、2.Java提供非常有效的安全控制。由于Java應用于網絡程序的開發(fā),因而安全性至關重要。因為Java小程序需要下載到客戶端解釋執(zhí)行,所以,如果沒有安全控制,就會給一些網絡黑客以可乘之機,這對用戶來說是非常危險的。所幸的是,Java的安全機制可以有效的防止病毒程序的產生、下載程序對本地文件系統(tǒng)的破壞,以及網絡黑客竊取密碼和入侵。 3.Java是一種非常健壯的語言。因為在Java中使用了以下手段: (1) 自動內存垃圾收集機制。Java自動收集無用的內存單元,進而防止了由于內存泄漏導致的動態(tài)內存分配問題。 (2) 完善的異常處理機制。既簡化了錯誤處理任務和恢復,也增加了程序的可讀性[5]。
17、 4.Java具有非常好的平臺無關性和可移植性。Java使用一種與平臺無關的代碼──字節(jié)碼,而不是通常的特定機器上的機器碼,由平臺上的Java虛擬機中的Java解釋器解釋執(zhí)行。使用Java作為編程語言,只要進行一次程序開發(fā)工作,所開發(fā)的程序不需要經過任何改動,便能在各種平臺上運行。Java采用基于國際標準的數(shù)據類型使Java的應用程序不依賴與具體的系統(tǒng)。 5.Java是一種高性能的語言。健壯性、安全性、平臺無關性、可移植性等方面的提高總是要以犧牲性能為代價的。Java的內存管理增加了運行時系統(tǒng)的復雜性,因為Java運行時系統(tǒng)必須內嵌一個內存管理模塊;同樣,Java程序的解釋執(zhí)行的效率也要低
18、于直接執(zhí)行編譯后的源碼的效率。但是Java采用了一些很好的措施來彌補這些性能上的差距: (1) 生成高效的字節(jié)碼。Java字節(jié)碼的設計充分考慮了性能的因素,字節(jié)碼的格式簡單,解釋器可以生成高效的機器碼。 (2) 提供了即時編譯和嵌入C代碼的可選措施。即時編譯是指在運行時把字節(jié)碼編譯成機器碼[6]。 2.1.2 程序開發(fā)常用包 Java中的包指的是目錄,它是為了更好的管理Java類和接口。Java語言的包可以被另一個Java開發(fā)包所使用,如果要引用某個包中的類,用import關鍵字表明[7]。 Java中常見的包有:java.applet、java.awt、java.io、java.
19、lang、java.util和javax.swing等。其中java.applet包含了一些設計小應用程序的類和接口;java.awt是一個窗口工具箱包,里面是一些GUI界面相關的類;java.io包支持輸入輸出,比如文件輸入流類;java.lang包含線程,異常,系統(tǒng)整數(shù)等相關的類,是Java程序中默認加載的一個包;java.util包含一些程序的公用類;javax.swing包括Swing容器、組件及相關設置的類和接口。 1.java.awt程序包 Java.awt程序包提供了創(chuàng)建圖形用戶界面的全部工具,包括:圖形組件類,如窗口,對話框,按鈕,復選框,列表,菜單,滾動條和文本區(qū)等類;用
20、于管理組件排列布局管理器Layout類以及常用的顏色Color類,字體Font類。Java.awt.evevt類庫用來處理不同類型的事件。 2.java.applet程序包 Java.applet是所有java小程序的基礎類庫。它只包含了一個applet類,所有小程序都是由該類派生出來的。 3.java.lang程序包 Java.lang是Java語言的基礎類庫,包含基本數(shù)據類型,數(shù)學函數(shù),字符串類等。這是唯一自動引入每個Java程序的類庫。 4.java.io程序包 Java.io 程序包是Java語言的輸入輸出類庫,Java語言的文件操作都是由該類庫中的輸入輸出類來實現(xiàn)的,此外
21、該類庫還提供了一些與其他外部設備交換信息的類。Java.io程序包除了包含標準輸入輸出類以外,還有緩存流,過濾流,管道流和字符串類等。 5.javax.swing程序包 Javax.swing程序包提供了三個通用的頂層容器類JFrame,JDialog和JApplet。JFrame類提供了基于窗體的應用程序,JDialog類提供對話框形式的界面,JApplet提供Java小應用程序的界面形式。常用的Swing組件包括按鈕、單選按鈕、復選框、文本區(qū)、文本字段、列表、下拉列表、樹和表格等。 2.2 小結 本章研究了文本編輯器所使用的理論知識和工具環(huán)境。通過這一章的研究,主要研究和掌握以下兩
22、點:1.Sun公司的Java技術;2.Java程序的開發(fā)常用的包。本章為后續(xù)章節(jié)的軟件分析、設計和實現(xiàn)做了強有力的技術支持。 3 系統(tǒng)分析與設計 需求分析是軟件開發(fā)的基礎,需求分析得出的結論是軟件開發(fā)后續(xù)階段的工作依據,直接決定著最終軟件能否滿足用戶的需求,決定著軟件開發(fā)的成功與否。而系統(tǒng)設計的也是系統(tǒng)開發(fā)的重點和難點,嚴重的影響者軟件的質量。本章將主要完成文本編輯器的需求分析和系統(tǒng)設計。 3.1 軟件需求分析 需求在軟件產品的整個生存期中占有非常重要的位置,它是軟件工程項目的依據和出發(fā)點。無論是軟件的開發(fā)還是軟件的維護都是以滿足需求作為最終目的的。 軟件系統(tǒng)的
23、需求一般可以分為功能性需求和非功能性需求。功能性需求是系統(tǒng)需要實現(xiàn)的,提供給用戶使用的具體的功能;非功能性需求是為了滿足用戶對系統(tǒng)功能的需求,系統(tǒng)正常工作所應當具備的系統(tǒng)的特定特性,如性能、安全性、可用性、可擴展性等等,二者互為影響[8]。本小節(jié)闡述文本編輯軟件的需求分析,主要是從功能需求方面闡述。 本文完成的文本編輯器軟件主要是針對電腦初學者,幫助電腦初學者用戶掌握編輯文本的簡單的操作。 需求分析的任務是確定功能必須完成的工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。需求開發(fā)是為研發(fā)出符合用戶需求的產品而進行的需求收集分析和確定研發(fā)內容活動過程。需求分析的任務是發(fā)現(xiàn)問題域并求
24、精的過程,當在需求可以被分析之前,必須通過一個誘導過程來收集客戶需求。需求獲取的主要目標是在開發(fā)之前更好的理解要解決的問題。在經過多方了解和研究之后,基本上清楚了此文本編輯器的功能需求。 根據此文本編輯器的的實際要求,應具有以下幾個方面的功能需求: 1.文本新建功能:文本編輯器清空文本區(qū),重新分配新的內存空間。在運行該編輯器時,可以直接編輯默認的新建文件,在左邊的樹中正在編輯的文件顯示有File1,右邊的文件文本域所在的Tab標簽上顯示的也是file1.txt。 2.文本打開功能:指定打開本地計算機上的文本文件,打開之后放在另一個文本區(qū)中,在左邊的樹中正在編輯的文件顯示有打開文本的文本名
25、,右邊的文件文本域所在的Tab標簽上顯示的也是當前的文本名。 3.文本保存功能:保存文本文件到指定的地方,保存后的文本格式可以為“*.java ,*.html,*.cpp,*.txt”。 4.全選功能:可以對當前正在進行編輯的文本進行全選功能,提高效率。 5.字符串查詢功能:在當前文件中查找字符串,在彈出的對話框中輸入所要查找的字符串,點擊確定開始查找,找到后顯示高亮。并且能夠查找下一個所要查詢的內容。 6.替換功能:可以對查找到的所有內容都能夠進行替換。 7.退出功能:退出文本編輯器,釋放內存。 8.復制功能:選中文字,復制到后臺。 9.字體設置功能:可以改變文本區(qū)中被選定的文
26、字的字體的大小和樣式。 10.剪切功能:選中文字,剪貼到后臺。 11.粘貼功能:將復制或剪切的文字,粘貼到指定的位置。 12.代碼運行功能:將編譯好的代碼,運行出結果。如果運行錯誤,顯示出錯原因。 13.代碼編譯功能:連接本地計算上的Java虛擬機,對編寫的代碼進行編譯,如果編譯錯誤,會顯示錯在第幾行;如果編譯沒有錯誤,則顯示編譯成功。 文本編輯軟件的界面要求操作簡單,要求在窗口頂部設有菜單欄,分別有文件,操作,演示,格式,編輯和幫助;要求在菜單欄下面設有工具欄,分別有打開按鈕,新建按鈕,保存按鈕,退出按鈕,查找按鈕,查找下一個按鈕,替換按鈕,設置字體按鈕,復制按鈕,剪切按鈕,粘貼按
27、鈕,幫助按鈕;要求在文本編輯器右邊的文本域用于編輯文本,右邊中間的文本域用于顯示光標的行號,右邊下面的文本域是顯示編譯和運行信息;要求界面的文本區(qū)域可以隨意調節(jié)大小。 系統(tǒng)用例圖如圖3-1所示。系統(tǒng)用例圖描述如表3-1所示。 3.2 系統(tǒng)類設計 軟件類設計是軟件系統(tǒng)中的核心元素,是構建軟件系統(tǒng)中其他部分所依賴的基礎。類的設計指的是系統(tǒng)各個組成部分協(xié)同工作的方式的連接。軟件的各個組成部分正是通過類之間所描繪的方式進行協(xié)同工作,共同完成軟件的功能,最終向外界表現(xiàn)出一個完整的軟件。因此,軟件類的設計的好壞會從根本上決定基于這個架構所構建的軟件系統(tǒng)的質量。總的來說,類的的構建一直是軟件開發(fā)過程中
28、的一項重要工作。文本編輯軟件中類與方法的使用如表3-2所示: 自定義的SimpleEditor類是文本編輯器的主類,繼承JFrame類。SimpleEditor是構造函數(shù);init方法初始化編輯器上的所有控件;inithelp方法初始化幫助信息,以表格的形式顯示文本編輯器的快捷鍵的信息;exitEditor方法退出文本編輯器。 圖3-1 系統(tǒng)用例圖 自定義的鍵盤事件類MyKeyListener繼承KeyAdapter類,重寫父類的keyPressed方法,處理鍵盤被按下時的事件。 自定義的文件選擇器File
29、Chooser類繼承JFileChooser類。approveSelection方法實現(xiàn)文件的選擇;getSelectedFile方法獲得被選中的文件;getCurrentDirectory方法獲得被選擇文件所在的目錄;setSelectedIndex方法將新頁設為當前頁; append方法把內容添加到文本域中;write方法將文件的文本域中的內容保存到文件;cancelSelection方法處理關閉文件選擇器事件;dispose方法將文件選擇器窗口關閉。 自定義的文件過濾器類Filter繼承FileFilter類,重寫父類的accept方法。accept方法決定是否允許文件通過文件過濾器;
30、getDescription方法獲得文件選擇器的描述。 自定義的獲取當前光標所在行號CaretLis_line類實現(xiàn)了CaretListener的接口,顯示當前編輯文本的光標行號。caretUpdat方法實現(xiàn)文本組件的插入點改變;getCaretPosition方法獲得文本域中光標插入點的位置;getLineOfOffset方法,能夠獲得插入點所在的行號。 自定義的鼠標事件類MouseListener_console繼承MouseAdapter類。mouseClicked方法實現(xiàn)鼠標在控制臺文本域中被單擊;getCaretPosition方法獲得插入點的位置,通過getLineOfOffs
31、et方法獲得插入點所在的行號。 自定義的窗口事件監(jiān)聽器WindowListener類繼承WindowAdapter類,windowClosing方法實現(xiàn)處理關閉窗口事件。 自定義的切換tab事件類ChangeTab實現(xiàn)ChangeListener接口。stateChanged方法實現(xiàn)切換JTabbedPane的頁時出發(fā)該類事件;getSelectedIndex方法獲得被選擇頁的索引,并將它設置為當前操作頁的索引。 自定義的Act_NewFile類實現(xiàn)ActionListener接口,是新建功能事件的監(jiān)聽器。add方法實現(xiàn)更新tab頁功能;setRightComponent方法將組件設置在
32、分割條的右邊;setDividerLocation方法實現(xiàn)設置分隔條的坐標;setSelectedIndex方法實現(xiàn)設置選擇頁面的編號;addTab方法實現(xiàn)添加一個新的Tab頁;remove方法實現(xiàn)更新樹的功能。 表3-1 系統(tǒng)用例圖描述表 用例編號 UCEDITOR001 用例名稱 文本編輯器的基本操作 用例概述 用戶對文本編輯器進行基本操作,實現(xiàn)文本編輯器的使用 范圍 用戶 項目相關人 利益說明 項目相關人 利益 用戶 進行文本編輯的操作 前置條件 成功打開文本編輯器 后置條件 對文件進行操作,關
33、閉文本編輯器 成功保證 用戶對文本編輯文件操作成功 基本事件流 步驟 活動 1 本地文件操作 2 編輯操作 擴張事件流 1a 打開本地文件,保存到本地文件 2a 對編輯的文本進行全選,設置字體,復制,剪切,粘貼,查找字符串和替換功能 子事件流 無 規(guī)則與約束 用戶打開文本編輯器,對文件進行正確操作 自定義的Act_OpenFile類實現(xiàn)ActionListener接口,是打開功能事件的監(jiān)聽器。setVisible方法實現(xiàn)設置打開的界面是否可見的功能;setTile方法實現(xiàn)設置打開界面標題的功能;setSize方法實現(xiàn)設置打開界面尺寸的功能;getConte
34、ntPane方法實現(xiàn)初始化一個容器,在容器上添加一些控件的功能。 自定義的Act_SaveFile類實現(xiàn)ActionListener接口,是保存功能事件的監(jiān)聽器。setTitle方法實現(xiàn)輸入保存文件名的提示功能;close方法實現(xiàn)對已存在的文件,直接保存的功能;add方法實現(xiàn)添加控件的功能;showMessageDialog方法實現(xiàn)信息提示對話框的功能;getTitleAt方法實現(xiàn)得到保存文件名的功能。 自定義的Act_Find類實現(xiàn)ActionListener接口,是查找功能事件的監(jiān)聽器。requestFocues實現(xiàn)鼠標鍵盤焦點放在當前文本域中;select方法實現(xiàn)將匹配內容顯示高亮
35、的功能;indexOf方法實現(xiàn)判斷文本是否包含查找內容的功能;getText方法實現(xiàn)獲得文本域中文本的功能;length方法實現(xiàn)查找字符串長度的功能;showMessageDialog方法實現(xiàn)顯示一個對話框;showInputDialog方法實現(xiàn)顯示一個輸入對話框。 自定義的Act_FindNext類實現(xiàn)ActionListener接口,是查找下一個功能事件的監(jiān)聽器。select方法實現(xiàn)將匹配內容顯示高亮的功能;indexOf方法實現(xiàn)判斷文本是否包含查找內容的功能;getText方法實現(xiàn)獲得文本域中文本的功能; showMessageDialog方法實現(xiàn)顯示一個對話框。 自定義的Act_R
36、eplace類實現(xiàn)ActionListener接口,是替換功能事件的監(jiān)聽器。replaceSelection方法實現(xiàn)替換文本域中被選擇的內容;getText方法實現(xiàn)獲得文本域中文本的功能;length方法實現(xiàn)查找字符串長度的功能;showMessageDialog方法實現(xiàn)顯示一個對話框;showInputDialog方法實現(xiàn)顯示兩個輸入對話框。輸入查找內容和替換內容。 自定義的Act_SetFont類實現(xiàn)ActionListener接口,是設置字體功能事件的監(jiān)聽器。getAvailableFontFamilyNames方法實現(xiàn)獲得系統(tǒng)全部字體的功能;isSelected方法實現(xiàn)是否被選擇的功
37、能。 自定義的Act_Copy類實現(xiàn)ActionListener接口,是復制功能事件的監(jiān)聽器。copy方法實現(xiàn)文字的復制功能。 自定義的Act_Cut類實現(xiàn)ActionListener接口,是剪切功能事件的監(jiān)聽器。cut方法實現(xiàn)文字的剪切功能。 自定義的Act_Paste類實現(xiàn)ActionListener接口,是粘貼功能事件的監(jiān)聽器。paste方法實現(xiàn)文字的復制功能。 自定義的Act_ExitEditor類實現(xiàn)ActionListener接口,是退出功能事件的監(jiān)聽器。exitEditor方法實現(xiàn)退出編輯器的功能。 表3-2 類與方法關系表 SimpleEditor i
38、nit exitEditor initHelp SimpelEditor SimpleEditor類: MyKeyListener keyPressed getKeyCode isContorlDown isAltDown MyKeyListener類: append getCurrentDirectory dispose addpad setSelectedIndex write cancelSelection approveSelectio
39、n FileChooser getSelectedFile FileChooser類: Filter return accept getDescription getName Filter類: CaretLis_line getCaretPosition caretUpdate getLineOfOffset CaretLis_line類: mouseClicked Select Get:ineOfOffset getCaretPosition g
40、etText getLineStartOffset MouseLis_console MouseLis_console類: 續(xù)表3-2 WindowListener windowClosing exitEditor WindowListener類 Act_ChangeTab stateChanged getSelectedIndex Act_ChangeTab類: Act_NewFile setSelectedIndex remove setRightComponent set
41、DividerLocation addTab add actionPerformed Act_NewFile類: Act_OpenFile addChoosableFileFilter getContentPane setTile setVisible setSize actionPerformed Act_OpenFile類: Act_OpenFile addChoosableFileFilter getContentPane setTile setVisible setSize actionPer
42、formed Act_OpenFile類: actionPerformed Act_Find showInputDialog showMessageDialog length getText indexOf requestFocus select Act_Find類: 續(xù)表3-2 actionPerformed Act_FindNext select showMessageDialog indexOf gerText Act_FindNext類: Ac
43、t_Replace actionPerformed showMessageDialog getText length showInputDialog replaceSelection Act_Replace類: actionPerformed isSelected setFont actionPerformed getAvailableFontFamilyNames intValue getSelectedItem Act_SetFont Act_SetFont類: actionPerfo
44、rmed Act_Copy copy Act_Copy類: actionPerformed Act_Cut cut Act_Cut類: actionPerformed Act_Paste paste Act_Paste類: actionPerformed Act_ExitEditor exitEditor Act_ExitEditor類: 3.3 系統(tǒng)總體設計 軟件功能設計的主要任務是確定軟件的功能如何實現(xiàn),是軟件實現(xiàn)的基礎。在設計中,應該注意的是設計的統(tǒng)一和準確。設計工作一定要遵循相應的
45、設計原理,才能做出好的設計。系統(tǒng)功能模塊的劃分,是遵循設計原理,在需求分析基礎上進行的,是把具有復雜能力功能的系統(tǒng)通過設計分解為具有基本獨立,功能簡單,易于實現(xiàn)等特點的多個功能模塊。本節(jié)針對文本編輯器軟件的需求,結合系統(tǒng)設計的原理,進行系統(tǒng)模塊的劃分,并對每一模塊都進行了詳細的設計。 3.3.1 設計原理 系統(tǒng)設計是下一階段系統(tǒng)實現(xiàn)的基礎,設計的好壞嚴重影響系統(tǒng)實現(xiàn)的質量。設計工作一定要遵循相應的設計原理,才能做出好的設計。設計原理如下: 抽象,是指在考慮問題時,集中考慮和當前問題有關的方面,而忽略和當前問題無關的方面,這就是抽象?;蛘哒f抽象就是抽出事物的本質特性而暫時不考慮它們的細節(jié)
46、。 模塊化,是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。有人說,模塊化是為了使一個復雜的大型程序能被人的智力所管理,軟件應該具備的惟一屬性。如果一個大型程序僅由一個模塊組成,它將很難被人所理解。 逐步求精,是解決復制問題時采用的基本方法,最初是由Niklaus Wirth提出的一種自頂向下的設計策略。按照這種設計策略,程序的體系結構是通過逐步精化處理過程的層次而設計出來的。通過逐步分解對功能的宏觀陳述而開發(fā)出層次結構[9]。求精實際上是細化的過程。 3.3.2 功能模塊劃分 本程序涉及的是對圖形用
47、戶界面的設計與實現(xiàn)和主要功能的設計與實現(xiàn)。通過對文本編輯軟件的系統(tǒng)需求的分析,軟件功能模塊劃分如下幾個主要模塊,設計見圖3-2所示: 在功能結構圖上可以知道,對文本編輯軟件進行了六個模塊的劃分,分別是文件功能模塊,操作功能模塊,演示功能模塊,格式功能模塊,編輯功能模塊和幫助功能模塊。下面將對這六個模塊進行詳細的介紹。 1.文件模塊 文件模塊主要包括新建,打開,保存,全選,退出功能。在運行該編輯器時,可以直接編輯默認的新建文件File,在左邊的樹中正在編輯的文件顯示有File1,可以在文本區(qū)對文字及代碼的輸入和修改。需要打開本地文件時,可以打開“*.java ,*.html,*.cpp,*
48、.txt”文件,在左邊的樹中會顯示打開的文件的名稱,在文本區(qū)中會重新顯示一個窗口。當對編輯好的文本進行保存時,需要選擇文件存儲路徑。當需要退出文本編輯器時,點擊退出按鈕。 圖3-2 軟件功能模塊圖 2.操作模塊 操作模塊主要包括查找,查找下一個和替換功能。通過查找功能,在當前文件中查找字符串,在彈出的對話框中輸入所要查找的字符串,點擊確定開始查找找到后顯示高亮。查找下一個可以幫助用戶看看有幾處出現(xiàn)想要查找的字符串,以便提高工作效率。當需要進行替換時,點擊替換按鈕會出現(xiàn)一個對話框,輸入你要查找的字符串,然后輸入需要替換的字符串,如果文本中有很多處查找的字符串會一直顯示你是否需要替換。
49、3.格式模塊 格式模塊主要包括設置字體功能和獲取當前時間功能。當需要改變字體的大小和樣式的時候,可以點擊設置字體按鈕,改變文本區(qū)中被選定的文字的字體的大小和樣式。 4.編輯模塊 編輯模塊主要包括復制功能,剪切功能和粘貼功能。當點擊復制按鈕時,可以對所選的文本域進行復制,可以方便用戶可以更快的編輯。當點擊剪切按鈕時,可以對所選中的文本域進行剪切,把內容粘貼到所需要的地方。復制,剪切和粘貼功能是文本編輯器中重要的功能,可以對所編輯的文本進行方便的編輯。 5.演示模塊 演示模塊主要包括編譯功能,運行功能,開始動畫功能和停止動畫功能。連接本機的Java虛擬機,對源代碼進行編譯及編譯后運行,編
50、譯如果出現(xiàn)錯誤,會在右下方文本域中顯示出現(xiàn)錯誤的行號以及出現(xiàn)錯誤的原因,如果沒有出現(xiàn)錯誤,就可以點擊運行按鈕,對所寫的代碼進行運行。 6.幫助模塊 幫助模塊是顯示用此文本編輯器時所需要注意的一些事項和告訴用戶與功能相關的快捷方式,幫助用戶更好的了解和使用。 3.4 小結 本章主要從功能需求方面對軟件進行了進行了需求分析,通過分析,為以后軟件的設計打下了基礎;闡述了本軟件類的設計,從軟件包括的功能模塊上進行了描述。 4 詳細設計與實現(xiàn) 編碼是在詳細設計的基礎上進行的,它將詳細設計得到的處理過程的描述轉換為基于某種計算機語言的程序,進而實現(xiàn)軟件的設計。本章包含兩部分內容: 一是文本
51、編輯器軟件開發(fā)平臺及工具的選擇,軟件使用Java語言編寫代碼; 二是功能的實現(xiàn),文本編輯軟件主要包括新建功能,打開功能,全選功能,保存功能,退出功能,查找功能,查找下一個功能,替換功能,編譯功能,運行功能,設置字體功能,復制功能,粘貼功能,剪切功能和幫助功能。 4.1 系統(tǒng)開發(fā)平臺及工具選擇 系統(tǒng)開發(fā)平臺和工具為軟件的實現(xiàn)提供了必不可少的支撐平臺和環(huán)境,選擇恰當?shù)拈_發(fā)平臺和工具,不僅可以加快開發(fā)的進度,提高開發(fā)的質量,而且還對用戶的使用有極大的影響。本節(jié)針對文本編輯軟件的需求和實際應用條件,選擇簡單的操作平臺和工具,具體如下: 1.操作系統(tǒng):Windows XP 2.開發(fā)平臺:Sun
52、公司的開發(fā)的1.6版本的JDK 3.主要開發(fā)工具:Windows XP自帶的記事本 4.2 主窗體設計與實現(xiàn) 此文本編輯軟件選用SUN公司開發(fā)的JDK作為軟件實現(xiàn)的后臺基礎,使用Java語言編寫代碼,采用Java的圖形界面技術實現(xiàn)文本編輯軟件的界面。 從用戶的角度出發(fā),軟件的實現(xiàn)分為主界面的設計和實現(xiàn)和功能的設計和實現(xiàn)。主界面的實現(xiàn)分為菜單欄的實現(xiàn),工具欄的實現(xiàn),文本區(qū)域的實現(xiàn),動畫功能的實現(xiàn)以及樹結構的實現(xiàn)。功能的實現(xiàn)分為文件模塊的實現(xiàn),包括新建功能,打開功能,保存功能,全選功能和退出功能;操作模塊的實現(xiàn),包括查找功能,查找寫一個功能和替換功能;演示模塊的實現(xiàn),包括編譯功能,運行功能
53、,停止動畫功能和開始動畫功能;格式模塊的實現(xiàn),包括設置字體的功能和獲取當前時間的功能;編輯模塊的實現(xiàn)包括,復制功能,粘貼功能和剪切功能;幫助模塊的實現(xiàn)包括幫助功能。 主窗體作為第一個展示在用戶面前的窗體,是用戶對軟件的第一感覺,在程序中起著非常重要的作用。主窗體向用戶展示了程序常用功能,使用戶對程序設計有一個初步的認識。主窗體主要包含菜單欄,工具欄和文本域。主窗體運行結果如下圖4-1 所示: 圖4-1 文本編輯器主界面 主窗體主要設計過程如下: 1.JFrame類的setJMenuBar的方法為窗口添加菜單欄JMenuBar,JMenuBar的add方法為
54、菜單欄添加菜單JMenu,JMenu的add方法為菜單添加菜單項JMenuItem,它們之間的關系是樹形關系。需要為每個菜單項添加事件處理器,當單擊菜單項時,觸發(fā)事件。 2.JToolBar為工具欄,在工具欄中添加按鈕或者標簽。JButton的setToolTipText方法設置按鈕的提示信息,當鼠標停留在按鈕上若干時間后,會顯示提示信息。 3.分隔窗格JSplitPane類用于分隔兩個組件,可以由用戶交互的調整組件的大小。根據分隔條的方向,把JSplitPane分成有兩種:VERTICAL_SPLIT表示水平分隔條,HORIZONTAL_SPLIT表示垂直分隔條。setDividerlo
55、cation方法設置分隔條的坐標。 4.JTree類實現(xiàn)樹結構,樹中有多個節(jié)點,但是且只有一個根節(jié)點。通用的節(jié)點類型為DefaultMutableTreeNode,它的add方法為節(jié)點添加子節(jié)點。 5.JTextArea文本域顯示文件內容,將它放置在JScrollPane中,使其具備滾動條。setCareColor方法設置插入光標的顏色;addCareListener方法為文本域設置光標事件處理器,當光標位置改變時觸發(fā)該類事件;getText和setText方法獲得和設置文本域的內容;select方法高亮顯示文本域中指定的文本;setCaretPositin方法獲得光標在文本域中的位置;g
56、etLineOfOffset方法獲得指定位置在文本域中的行號;getLineStartOffset方法獲取指定行的第一個字符在文本域中的位置;getLineEndOffset方法獲取指定行的最后一個字符在文本域中的位置。 6.JTabbedPane實現(xiàn)多頁面的管理,每個頁面有一個標簽。addTab方法添加頁面;addChangeListener方法設置頁面切換事件處理器;setSelectedIndex方法設置選擇頁面編號;getSelectendIndex方法獲取被選擇的頁面的編號;setTitleAt方法設置指定頁面標簽;getTitleAt方法獲取指定頁面的標簽。 4.3 新建功能設
57、計與實現(xiàn) 4.3.1 新建功能概述 新建功能屬于文件模塊,是文本編輯器開始編輯的前提,打開文本編輯器需要編輯新的文本時,可以新建文本。對新建文本設置了編碼,這樣可以方便用戶知道自己編輯的是哪個文本。新建功能運行界面如圖4-2和4-3所示: 圖4-2 新建一個文本運行界面 圖4-3 新建兩個文本運行界面 4.3.2 新建功能技術分析 init方法初始化編輯器上的新建控件,初始化10個文本域,表示該文本編輯器能同時編輯10個文件,并構建10個默認的樹節(jié)點DefaultMutableTreeNode對象。初始
58、化界面左邊的JTree,設置它的根節(jié)點為正在編輯的文件,使用DefaultMutableTreeNode的add方法為根節(jié)點添加一個子節(jié)點,表示編輯器初始狀態(tài)時時新建一個文件。JTree的setEditable方法設置樹不可編輯。 初始化顯示當前光標所在行數(shù)的文本域showLineNoTextArea,當用戶移動編輯器的光標時,在該文本域中顯示光標行數(shù)會跟著發(fā)生變化。通過setEnabled方法使得它不可編輯。 MyKeyListener類用于處理鍵盤事件,繼承了KeyAdapter類。在類MykeyListener的KeyPressed方法中,覆蓋了父類的KeyPressed方法,處理鍵
59、盤被按下的事件,參數(shù)類型為KeyEvent類型。通過KeyEvent的getKeyCode方法獲得被按下鍵盤的碼N,isControlDown方法判斷Ctrl鍵是否被按下,根據組合,調用方法新建文件。 Act_ChangeTab類實現(xiàn)了對ChangeListener接口的監(jiān)聽,在切換tab頁時,會更新textAreas_control的值。類Act_NewFile實現(xiàn)新建功能,實現(xiàn)了ActionListener接口,當用戶選擇“新建”菜單時,調用它的actionPerformed方法。點擊菜單中的新建按鈕、點擊工具欄中的新建圖標和使用快捷鍵Ctrl+N,都會實現(xiàn)新建功能。建立新建文件時,會更
60、新樹目錄和面板中的tab頁。 4.3.3 新建功能實現(xiàn)過程 1.JFrame類的setJMenuBar的方法為窗口添加菜單欄JMenuBar,JMenuBar的add方法為菜單欄添加菜單Jmenu文件,JMenu的add方法為菜單添加菜單項JmenuItem新建,它們之間的關系是樹形關系。 2.JToolBar為工具欄,在工具欄中添加新建按鈕和新建標簽。JButton的setToolTipText方法設置按鈕的提示信息,當鼠標停留在按鈕上若干時間后,會顯示提示信息新建。 3.為新建菜單項添加事件處理器,當單擊菜單項時,觸發(fā)事件。多個文本域放在不同的tab里,在文本域中進行編輯文件。
61、 4.4 打開功能設計與實現(xiàn) 4.4.1 打開功能概述 打開功能屬于文件模塊,是文本編輯器的重要功能,打開本地文件顯示在文本域中,可以方便用戶更好的編輯文本。打開編輯好的文本,可以直接進行編譯及運行。打開功能運行界面如圖4-4所示: 圖4-4 打開文件運行界面 4.4.2 打開功能技術分析 自定義的文件選擇器類FileChooser,繼承了類JFileChooser。在類FileChooser中approveSelection方法中實現(xiàn)文件的選擇。當用戶通過文件選擇器文件時,單擊“確定”按鈕時被調用。fileChooser_control變量值為0表示當前的文件選擇器是為
62、了打開文件。打開文件時,JFileChooser的getSelectedFile方法獲得被選中的文件,getCurrentDirectory方法獲得被選擇文件所在的目錄。從文本域數(shù)組fileTextAreas取出一個新元素,用于顯示文件內容;同時將JTree的根節(jié)點添加一個新頁,把顯示新文本內容的文本域組織在JTabbedPane中,并通過SetSelectedIndex方法將新頁設為當前頁。通過BufferedReader讀取文件內容,并通過JTextArea的append方法把內容添加到文本域中。 Filter類實現(xiàn)了一個自定義的文件過濾器類,繼承了類FileFilter。Filter類
63、中的accept方法決定是否允許通過文件過濾器。允許如下文件被選擇:“.java”,“.html”,“.txt”,“.cpp”。getDescription方法獲得文件選擇器的描述,即文件選擇框的文件類型描述。 MyKeyListener類用于處理鍵盤事件,繼承了KeyAdapter類。在類MykeyListener的KeyPressed方法中,覆蓋了父類的KeyPressed方法,處理鍵盤被按下的事件,參數(shù)類型為KeyEvent類型。通過KeyEvent的getKeyCode方法獲得被按下鍵盤的碼F12,根據按3 下的鍵的碼來調用方法打開文件。Act_Open類實現(xiàn)打開功能,實現(xiàn)了Acti
64、onListener接口,當用戶選擇打開菜單時,調用它的actionPerformed方法。 4.4.3 打開功能實現(xiàn)過程 1.JFrame類的setJMenuBar的方法為窗口添加菜單欄JMenuBar,JMenuBar的add方法為菜單欄添加菜單Jmenu文件,JMenu的add方法為菜單添加菜單項JmenuItem打開,它們之間的關系是樹形關系。 2.JToolBar為工具欄,可以在工具欄中添加按鈕或者標簽。JButton的setToolTipText方法設置按鈕的提示信息,當鼠標停留在按鈕上若干時間后,會顯示提示信息打開。 3.需要為打開菜單項添加事件處理器,當單擊菜單項時,
65、觸發(fā)事件。會出現(xiàn)選擇窗體,在所出現(xiàn)的選擇窗體中選擇出所要打開的本地文件。 4.5保存功能設計與實現(xiàn) 4.5.1 保存功能概述 保存功能屬于文件模塊,在對本文編輯器編輯完成后,需要對文本編輯器進行保存。根據編輯文件的類型,選擇所要保存的文件名稱,并且選擇目錄進行保存,以便下一次方便的打開,因此保存功能是一個重要的功能。 4.5.2 保存功能技術分析 自定義的文件選擇器類FileChooser,繼承了JFileChooser。approveSelection方法實現(xiàn)文件的選擇,fileChooser_control變量值為1時表示為了保存文件。保存文件時,使用FileWriter的wri
66、te方法將文件的文本域中的內容保存到文件。對于新建的文件,需要指定文件存儲路徑,因此要調用文件選擇器存儲文件,對于已經存在的文件直接保存。 MyKeyListener類用于處理鍵盤事件,繼承了KeyAdapter類。在類MykeyListener的KeyPressed方法中,覆蓋了父類的KeyPressed方法,處理鍵盤被按下的事件,參數(shù)類型為KeyEvent類型。通過KeyEvent的getKeyCode方法獲得被按下鍵盤的碼S,isControlDown方法判斷Ctrl鍵是否被按下,根據組合Ctrl+S,調用方法保存文件。Act_SaveFile類實現(xiàn)了保存功能,實現(xiàn)了ActionListener接口,當用戶選擇保存菜單時,調用它的actionPerformed方法。 4.5.3 保存功能實現(xiàn)過程 1.JFrame類的setJMenuBar的方法為窗口添加菜單欄JMenuBar,JMenuBar的add方法為菜單欄添加菜單Jmenu文件,JMenu的add方法為菜單添加菜單項JmenuItem保存,它們之間的關系是樹形關系。 2.JToolBar為工具欄,可以在工具欄中添加
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。