

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