基于java的模擬寫字板的設(shè)計(jì)和實(shí)現(xiàn)論文_第1頁
基于java的模擬寫字板的設(shè)計(jì)和實(shí)現(xiàn)論文_第2頁
基于java的模擬寫字板的設(shè)計(jì)和實(shí)現(xiàn)論文_第3頁
基于java的模擬寫字板的設(shè)計(jì)和實(shí)現(xiàn)論文_第4頁
基于java的模擬寫字板的設(shè)計(jì)和實(shí)現(xiàn)論文_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、職場大變樣社區(qū)( zcdby ):下載畢業(yè)設(shè)計(jì)成品全套資料,全部50元以下論文 基于java的模擬寫字板的設(shè)計(jì)和實(shí)現(xiàn)摘 要本文主要完成了多功能模擬寫字板的整體設(shè)計(jì)以及快捷鍵功能的實(shí)現(xiàn),目的在于解決市場上同類輸入產(chǎn)品在實(shí)現(xiàn)方面對電子白板或者計(jì)算機(jī)顯示器的依賴,使寫字板功能在任何環(huán)境均可實(shí)現(xiàn),擺脫了原有產(chǎn)品在此方面的局限性。本論文涉及寫字板各個(gè)模塊除了可以完成手打記錄日常的模擬寫字板功能外,還可以實(shí)現(xiàn)快捷鍵的運(yùn)用。本系統(tǒng)使用Java技術(shù)進(jìn)行基本頁面的設(shè)計(jì)與功能實(shí)現(xiàn)。本系統(tǒng)的設(shè)計(jì)實(shí)施為寫字板的運(yùn)行做基礎(chǔ),為模擬寫字板提供良好的條件。關(guān)鍵字: java;寫字板;快捷鍵Design and Implem

2、entation of java-based simulation WordPad AbstractThis paper mainly completed the realization of the overall design of multifunction virtual WordPad and shortcut functions, aimed at addressing the market similar products in the realization of input in terms of dependence whiteboard or computer monit

3、or, so that the tablet can function in any environment to achieve, get rid of the original products in this area limitations. This paper relates to WordPad each module can be completed in addition to the daily records Hand notepad function can also be achieved using shortcuts. This system using Java

4、 technology in design and function to achieve the basic page. The system is designed as a foundation for the implementation tablet running analog tablet to provide good conditions. Keywords: java;WordPad;shortcuts目 錄1 引言11.1課題研究背景11.2課題研究意義21.3課題研究內(nèi)容32 理論及技術(shù)基礎(chǔ)42.1 JavaApplet42.2可行性研究分析44442.3 本章小結(jié)53

5、 基于java的模擬寫字板架構(gòu)設(shè)計(jì)63.1 模擬寫字板設(shè)計(jì)需求63.2 模擬寫字板結(jié)構(gòu)設(shè)計(jì)74 模擬寫字板詳細(xì)設(shè)計(jì)84.1模擬寫字板類結(jié)構(gòu)設(shè)計(jì)84.2 模擬寫字板界面設(shè)計(jì)85 系統(tǒng)測試286 總結(jié)30參 考 文 獻(xiàn)31致 謝321 引言1.1 課題研究背景隨著科技的不斷發(fā)展,計(jì)算機(jī)方面的各種電子產(chǎn)品也在不斷發(fā)展和進(jìn)步,許多電子產(chǎn)品都想各個(gè)方向在改進(jìn),現(xiàn)在的用戶最求界面的最優(yōu)效果,致使許多的用戶在相應(yīng)的操作系統(tǒng)提高圖形化界面的發(fā)展。基于此種情形,軟件是否擁有一個(gè)良好的圖形化用戶界面,是否能夠最大限度的滿足用戶的使用體驗(yàn),這決定了該產(chǎn)品能否被喜歡甚至推廣?,F(xiàn)在市場上有大量的圖形界面很漂亮的系統(tǒng)軟件

6、被用戶認(rèn)可,計(jì)算機(jī)技術(shù)在進(jìn)步,軟件的發(fā)展也隨之進(jìn)步,不僅如此,硬件以及新的技術(shù)在計(jì)算機(jī)的相關(guān)知識基礎(chǔ)上有了新的進(jìn)步和革新,而這時(shí)導(dǎo)致系統(tǒng)自身體系結(jié)構(gòu)、操作運(yùn)行系統(tǒng)發(fā)生改變的重要原因,而這樣的變化會導(dǎo)致與當(dāng)下新環(huán)境的不協(xié)調(diào)運(yùn)作2。但如果在新的環(huán)境下,重新開發(fā)軟件,又會白白浪費(fèi)相應(yīng)的人力和物力,并還會浪費(fèi)已經(jīng)漸漸成熟的軟件成果。本課題是基于java的平臺,對寫字板進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),依據(jù)java的特性,一方面能夠解決性能問題,而且可以發(fā)揮多種平臺的優(yōu)勢,充分利用其自身的特點(diǎn);另一方面則表現(xiàn)為即使在新環(huán)境下,依舊可以完成對設(shè)計(jì)的實(shí)現(xiàn)以及其優(yōu)點(diǎn)的表現(xiàn),即能夠減少開發(fā)費(fèi)用,還能夠?qū)υ胁蛔愕母倪M(jìn),增加新的需

7、求并對其功能的實(shí)現(xiàn)加以完善,進(jìn)而提高其質(zhì)量,延長其生命期3。故而,實(shí)現(xiàn)于java基礎(chǔ)上的應(yīng)用程序的開發(fā)是一項(xiàng)非常值得關(guān)注與肯定的話題,具有重要的研究意義與商業(yè)價(jià)值。對于寫字板而言,以windows系統(tǒng)為例,其相應(yīng)功能的軟件(記事本)的設(shè)計(jì)并不美觀,所能給予的用戶體驗(yàn)不夠舒適,在其書寫過程中的文本屬性也相對有些混亂,不能滿足人們對使用舒適性與美觀性的要求,而相較于word等專門的辦公軟件而言,其跨平臺性與兼容性就顯得有些差強(qiáng)人意了,雖然在windows的平臺下,txt格式的文本有一些長處與特殊之處,但針對目前這么一個(gè)多元化、多平臺、全方位、寬領(lǐng)域的情況下來說,該類文本文件的使用并不能做到普及與實(shí)

8、用,多種文字格式的文件無法用該軟件正常打開,經(jīng)常會形成亂碼,而該文件保存下的文檔也經(jīng)常無法正常的使用別的軟件打開與讀取,這樣的問題會造成信息的丟失與浪費(fèi),可能會造成不良的后果,因此,針對這樣的情況,我們希望設(shè)計(jì)出能夠適用于多平臺交互的寫字板軟件,并盡可能的滿足用戶對美觀的要求。1.2 課題研究意義當(dāng)今社會是一個(gè)高度信息化的社會,伴隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展和普及,它已經(jīng)深深植入于我們生活與工作中,而計(jì)算機(jī)也成為了我們學(xué)習(xí)和工作的得力助手,提供給我們許多實(shí)用的功能,譬如對文字進(jìn)行處理、對信息進(jìn)行管理、還可以輔助設(shè)計(jì)、對圖形與圖像進(jìn)行處理、還可以進(jìn)行教育培訓(xùn)以及游戲娛樂等活動(dòng)。而當(dāng)下各行各業(yè)的人們都

9、借用計(jì)算機(jī)完成許多復(fù)雜而繁瑣的工作,使得整個(gè)工作環(huán)境得以簡化而效率得以提高,并且計(jì)算機(jī)的普及還規(guī)范了整個(gè)社會的運(yùn)轉(zhuǎn)情況,推進(jìn)了社會的發(fā)展。但值得注意的是,雖然目前的軟件種類十分繁多,各式各樣的軟件層出不窮,但由于用戶的數(shù)量很龐大,導(dǎo)致軟件需求的種類不同與數(shù)量的巨大,所以現(xiàn)存的軟件依舊不能滿足用戶們的一些特殊需要,鑒于這樣的現(xiàn)狀,人們不得不繼續(xù)開發(fā)各類軟件以便能夠?qū)崿F(xiàn)自身的各種需求,而本課題就是在這樣的情形下所形成的4。基于java的寫字板的設(shè)計(jì)與開發(fā),能夠滿足人們對寫字板這一軟件的兼容性與跨平臺性方面不足的完善,能夠盡可能的去迎合大多數(shù)用戶的多種需求,而這也正是這項(xiàng)課題的出發(fā)點(diǎn)與立足點(diǎn),也正是

10、這項(xiàng)課題的研究意義所在,盡可能的滿足多數(shù)人的公共需求并最好能保留挑選特殊性差異的功能是設(shè)計(jì)并開發(fā)一個(gè)軟件所應(yīng)該遵循的原則與評判其好壞的一個(gè)標(biāo)準(zhǔn) ,這樣才能表現(xiàn)出以人為本,用戶至上的觀念。研究這樣的課題,一方面遵循了軟件設(shè)計(jì)所應(yīng)該遵循的基本原則,另一方面對原有的軟件進(jìn)行擴(kuò)展與完善,使得課題不是那么的陌生,至少有一些現(xiàn)成的模板可以進(jìn)行參照與,并能夠直觀有規(guī)劃的找到其優(yōu)化完善方向與完善的方法,減輕了一部分的難度。1.3 課題研究內(nèi)容對于當(dāng)前各種不同應(yīng)用平臺的產(chǎn)品所表現(xiàn)出的高度個(gè)性化的特點(diǎn),即其外觀、人機(jī)交互界面等方面存在著千差萬別的不同之處,而該課題的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)一個(gè)能在各產(chǎn)品用戶端平臺上運(yùn)行、通

11、用的、并且可方便的支持各種控件、各種圖形格式的面向用戶的應(yīng)用軟件,同時(shí)還具有體積小、可供裁剪、可供移植等優(yōu)點(diǎn)與特點(diǎn),使得即使處于不同的設(shè)備平臺上也能具有美觀的用戶界面,以及相對比較豐富和完善的用戶功能,并盡可能的使程序操作起來簡單、有效而又直觀5,這是我們所要研究的方向。通過對Windows環(huán)境和java語言的分析,設(shè)計(jì)了在Windows環(huán)境下java的基礎(chǔ)上面向Windows終端的模擬寫字板應(yīng)用軟件,并設(shè)計(jì)實(shí)現(xiàn)其的跨平臺性,爭取可移植到其他的平臺下并能正常運(yùn)行,充分發(fā)揮java語言的特性,使得軟件具有完備的兼容性。模擬寫字板應(yīng)該具有可以將其創(chuàng)建的文件以其原有存放的形式顯示出來,并可以實(shí)現(xiàn)對文

12、件的新建、打開、編輯和內(nèi)容保存功能,對字體的設(shè)置功能,查找功能以及對程序的控制功能。由于其體積小,移植方便,適用于很多不同的系統(tǒng)平臺環(huán)境6,除此之外它作為一種小型圖形界面解決方案,可令那些對圖形界面大小要求苛刻的各種應(yīng)用系統(tǒng)作為借鑒。72 理論及技術(shù)基礎(chǔ)2.1 Java AppletJava Applet顧名思義,就是利用Java語言編寫的小應(yīng)用程序,Applet是在用戶的計(jì)算機(jī)上執(zhí)行的,提供了名為抽象窗口工具箱的窗口環(huán)境開發(fā)工具。 AWT利用用戶計(jì)算機(jī)的GUI元素,可以建立標(biāo)準(zhǔn)的圖形用戶界面,如窗口、按鈕、滾動(dòng)條等等。2.2可行性研究分析2.2.1技術(shù)可行性依據(jù)設(shè)計(jì)書所提出的系統(tǒng)功能、性能及

13、實(shí)現(xiàn)系統(tǒng)的種種約束前提,基于新系統(tǒng)的目標(biāo)來權(quán)衡是否擁有所需要的技術(shù),該軟件是一個(gè)模擬寫字板,當(dāng)下?lián)碛械募夹g(shù)已比較的成熟,硬件、軟件的性能要求、環(huán)境等個(gè)個(gè)綜合條件優(yōu)良,預(yù)計(jì)借用現(xiàn)有技術(shù)前提應(yīng)該完全可以實(shí)現(xiàn)該軟件的功能目標(biāo)。并且,思考所給的開發(fā)限期也比較的充裕,估計(jì)系統(tǒng)是可以在規(guī)定日期內(nèi)實(shí)現(xiàn)開發(fā)的10。綜上所述可以知曉,模擬寫字板的設(shè)計(jì)與開發(fā)在技術(shù)領(lǐng)域上是可行的。具有完成的條件。2.2.2經(jīng)濟(jì)可行性模擬寫字板擁有信息化的處理方式,同時(shí)擁有著撐持本系統(tǒng)的應(yīng)用平臺。因此無需再投入資金購買其他設(shè)施11。軟件的開發(fā)應(yīng)該以自身從程序開發(fā)的實(shí)踐中學(xué)習(xí)為基礎(chǔ)而來的,學(xué)校沒有資金投入的必要,而且這樣的軟件開發(fā)過程

14、中實(shí)際投入的成本并不是很高,所以開發(fā)經(jīng)費(fèi)方面完全可以接受。2.2.3社會可行性該軟件的社會可行性主要從法理因素、用戶使用的可行性兩方面深入討論研究。(1)法理因素該軟件是依據(jù)模擬寫字板的現(xiàn)實(shí)情況設(shè)計(jì)完善開發(fā)的,是經(jīng)過大量的調(diào)查研究所得出的結(jié)果,系統(tǒng)的軟件設(shè)計(jì)是在獨(dú)立的環(huán)境下完成的,沒有可供參考抄襲的軟件產(chǎn)品12,不存在侵權(quán)等違法的事項(xiàng)。(2)用戶使用可行性該軟件在用戶方面的要求,除了使用者應(yīng)具備一些在Microsoft Windows平臺上使用個(gè)人電腦的基本能力以外,并不需要特別的技術(shù)方面的能力。使用軟件的管理員,必須具備一定的運(yùn)用Tomcat服務(wù)器的能力,在投入到使用之前,不需要對管理系統(tǒng)的

15、人員進(jìn)行培訓(xùn)。這樣既能夠降低成本的投入又可以簡化操作的環(huán)節(jié)13。綜上所述可以知曉,本系統(tǒng)在社會可行性方面也能夠達(dá)標(biāo)。2.3 本章小結(jié)本章主要介紹了實(shí)現(xiàn)在模擬寫字板所用的理論和技術(shù)基礎(chǔ),并對每一種理論或技術(shù)做了簡要的介紹,同時(shí)這些技術(shù)在該系統(tǒng)中能夠得到應(yīng)用。3 基于java的模擬寫字板架構(gòu)設(shè)計(jì)3.1 模擬寫字板設(shè)計(jì)需求模擬寫字板可以將所選文件下的相關(guān)文件按文本的格式顯示出來,同時(shí)可以實(shí)現(xiàn)對相關(guān)文件的新建、打開、編輯和文本的刪除等功能;模擬寫字板可以依據(jù)文件自身內(nèi)容量的多少來實(shí)現(xiàn)的滾動(dòng)顯示,并且也能通過計(jì)算機(jī)的鍵盤對文本本身進(jìn)行迅速的編輯等功能。(1)模擬寫字板新建功能:可以在規(guī)定的路徑創(chuàng)建一個(gè)新

16、的模擬寫字板文件。 (2)打開模擬寫字板的功能:依據(jù)文件列表選擇打開指定的文件,打開指定文件時(shí),將打開文件的文本內(nèi)容顯示在文件編輯界面上,當(dāng)所選文件的內(nèi)容過多時(shí)可以自動(dòng)轉(zhuǎn)變?yōu)闈L動(dòng)顯示狀態(tài),并在文件編輯界面的上方滾動(dòng)顯示所選擇打開的文件的文件名。(3)控制模擬寫字板編輯格式功能:編輯所選定的文件時(shí),其文件的文本內(nèi)容輸入到當(dāng)前界面的右端邊界處進(jìn)行自動(dòng)換行,同時(shí)也可以使用鍵盤操作來實(shí)現(xiàn)換行動(dòng)作。當(dāng)輸入的文本內(nèi)容多于當(dāng)前屏幕縱向顯示范圍時(shí)出現(xiàn)縱向滾動(dòng)條,隨著文本輸入可以通過滾動(dòng)來顯示內(nèi)容。(4)模擬寫字板的內(nèi)容修改提示功能:若在選定打開文件后,對其內(nèi)容進(jìn)行了修改,在關(guān)閉文件時(shí)將會自動(dòng)提示該文件的內(nèi)容已

17、經(jīng)被修改的消息,用戶可手動(dòng)選擇是否保存修改后的內(nèi)容。(5)模擬寫字板的內(nèi)容增刪與改查功能:在打開所選定的相關(guān)文件后,可以對該文件中的文本內(nèi)容進(jìn)行編輯,如增加、刪除、修改、撤銷修改、查找等。這一旦發(fā)生變化,則在選擇保存后,文件列表中當(dāng)時(shí)所選的文件內(nèi)容也會發(fā)生相應(yīng)的更改變化。(6)模擬寫字板保存功能:可以對操作之后的相應(yīng)文件進(jìn)行保存,在選擇保存更改的文件之后,新保存的文件名將會立即顯示在文件列表上。3. 2 模擬寫字板結(jié)構(gòu)設(shè)計(jì)如圖3.6所示,模擬寫字板界面是模擬寫字板的入口和出口。模擬寫字板通過調(diào)用文件列表中不同的功能菜單對所選文件執(zhí)行各種操作。在文件列表的功能菜單中根據(jù)所選擇的菜單條目不同,能夠

18、進(jìn)入相應(yīng)的功能界面,如新建文件編輯界面、文件顯示內(nèi)容界面等。而且各個(gè)界面都有自己的功能菜單,通過調(diào)用自己的功能菜單對當(dāng)前界面進(jìn)行下一步的操作,如當(dāng)新建文件界面顯示時(shí),可通過菜單按鈕進(jìn)行增加、刪除、修改和查找內(nèi)容的操作;當(dāng)打開文件時(shí)在文件內(nèi)容的顯示界面上,可通過菜單按鈕進(jìn)行增加、刪除、修改和查找內(nèi)容的操作以及可通過修改文件提示框選擇是否保存修改后的文件內(nèi)容。圖3.6 模擬寫字板結(jié)構(gòu)設(shè)計(jì)4 模擬寫字板詳細(xì)設(shè)計(jì)4.1 模擬寫字板類結(jié)構(gòu)設(shè)計(jì)圖4.1 模擬寫字板類圖4.2 模擬寫字板界面設(shè)計(jì)(1)新建文件編輯界面:如圖4.2所示,界面上方顯示功能界面名稱。工具欄上面有各種操作的按鈕,中間區(qū)域?yàn)槲谋揪庉媴^(qū)

19、,用于接收文本的輸入。界面可以實(shí)現(xiàn)擴(kuò)大縮小的功能。圖4.2 模擬寫字板界面(2)打開文件內(nèi)容顯示界面:如圖圖4.3所示,界面中間區(qū)域?yàn)槲募?nèi)容的顯示區(qū),可以接收文本的編輯和修改。 圖4.3 打開模擬寫字板界面(3)模擬寫字板功能菜單設(shè)計(jì):如圖4.4所示,模擬寫字板工具欄上依次為文件按鈕、編輯按鈕、格式按鈕、查看、復(fù)制按鈕、幫助按鈕。圖4.4 模擬寫字板菜單界面代碼如下:public class TextEditorFrame extends JFrame implements ActionListener,DocumentListener /定義變量 /菜單 JMenu fileMenu,ed

20、itMenu,formatMenu,viewMenu,helpMenu; /"文件"的菜單項(xiàng) JMenuItem fileMenu_New,fileMenu_Open,fileMenu_Save,fileMenu_SaveAs,fileMenu_Print,fileMenu_Exit; /"編輯"的菜單項(xiàng) JMenuItem editMenu_Undo,editMenu_Redo,editMenu_Cut,editMenu_Copy,editMenu_Paste,editMenu_Delete,editMenu_Find,editMenu_FindNex

21、t,editMenu_Replace, editMenu_GoTo,editMenu_SelectAll,editMenu_TimeDate; /"格式"的菜單項(xiàng)JCheckBoxMenuItem formatMenu_LineWrap;JMenu formatMenu_Color;JMenuItem formatMenu_Font,formatMenu_Color_FgColor,formatMenu_Color_BgColor; /"查看"的菜單項(xiàng) JCheckBoxMenuItem viewMenu_Status; /"幫助"的

22、菜單項(xiàng) JMenuItem helpMenu_HelpTopics,helpMenu_About; /文本編輯區(qū)域 JTextArea editArea; /狀態(tài)欄標(biāo)簽 JLabel statusLabel; /彈出菜單及菜單項(xiàng) JPopupMenu popupMenu; JMenuItem popupMenu_Undo,popupMenu_Redo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll;/向菜單條添加"文件"菜單及菜單項(xiàng) menuBar.add(f

23、ileMenu); fileMenu.add(fileMenu_New); fileMenu.add(fileMenu_Open); fileMenu.add(fileMenu_Save); fileMenu.add(fileMenu_SaveAs); fileMenu.add(fileMenu_Exit); /向菜單條添加"編輯"菜單及菜單項(xiàng) menuBar.add(editMenu); editMenu.add(editMenu_Undo); editMenu.add(editMenu_Redo); editMenu.addSeparator(); /分隔線 editM

24、enu.add(editMenu_Cut); editMenu.add(editMenu_Copy); editMenu.add(editMenu_Paste); editMenu.add(editMenu_Delete); editMenu.addSeparator(); /分隔線 editMenu.add(editMenu_Find); editMenu.add(editMenu_FindNext); editMenu.add(editMenu_Replace); editMenu.add(editMenu_GoTo); editMenu.addSeparator(); /分隔線 edit

25、Menu.add(editMenu_SelectAll); editMenu.add(editMenu_TimeDate); /向菜單條添加"格式"菜單及菜單項(xiàng) menuBar.add(formatMenu); formatMenu.add(formatMenu_LineWrap); formatMenu.add(formatMenu_Font); formatMenu.addSeparator(); formatMenu.add(formatMenu_Color); formatMenu_Color.add(formatMenu_Color_FgColor); forma

26、tMenu_Color.add(formatMenu_Color_BgColor); /向菜單條添加"查看"菜單及菜單項(xiàng) menuBar.add(viewMenu); viewMenu.add(viewMenu_Status); /向菜單條添加"幫助"菜單及菜單項(xiàng) menuBar.add(helpMenu); helpMenu.add(helpMenu_HelpTopics); helpMenu.addSeparator(); helpMenu.add(helpMenu_About); /向窗口添加菜單條 this.setJMenuBar(menuBar

27、); /創(chuàng)建文本編輯區(qū)并添加滾動(dòng)條 editArea=new JTextArea(20,50); JScrollPane scroller=new JScrollPane(editArea); scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); container.add(scroller,BorderLayout.CENTER);/向容器添加文本編輯區(qū) editArea.setWrapStyleWord(true); /設(shè)置單詞在一行不足容納時(shí)換行 editArea.setLineWrap(t

28、rue); /設(shè)置文本編輯區(qū)自動(dòng)換行默認(rèn)為true,即會"自動(dòng)換行" editArea.setFont(defaultFont); /設(shè)置編輯區(qū)默認(rèn)字體 editArea.setBackground(Color.white); /設(shè)置編輯區(qū)默認(rèn)背景色 editArea.setForeground(Color.black); /設(shè)置編輯區(qū)默認(rèn)前景色 oldValue=editArea.getText(); /獲取原文本編輯區(qū)的內(nèi)容 /編輯區(qū)注冊事件監(jiān)聽 editArea.getDocument().addUndoableEditListener(undoHandler); e

29、ditArea.getDocument().addDocumentListener(this); /創(chuàng)建右鍵彈出菜單 popupMenu=new JPopupMenu(); popupMenu_Undo=new JMenuItem("撤消(U)",'U'); popupMenu_Redo=new JMenuItem("重做(R)",'R'); popupMenu_Cut =new JMenuItem("剪切(T)",'T'); popupMenu_Copy=new JMenuItem(&

30、quot;復(fù)制(C)",'C'); popupMenu_Paste=new JMenuItem("粘貼(P)",'P'); popupMenu_Delete=new JMenuItem("刪除(D)",'D'); popupMenu_SelectAll=new JMenuItem("全選(A)",'A'); popupMenu_Undo.setEnabled(false); /撤消選項(xiàng)初始設(shè)為不可用 popupMenu_Redo.setEnabled(false

31、); /重做選項(xiàng)初始設(shè)為不可用 /向右鍵菜單添加菜單項(xiàng)和分隔符 popupMenu.add(popupMenu_Undo); popupMenu.add(popupMenu_Redo); popupMenu.addSeparator(); popupMenu.add(popupMenu_Cut); popupMenu.add(popupMenu_Copy); popupMenu.add(popupMenu_Paste); popupMenu.add(popupMenu_Delete); popupMenu.addSeparator(); popupMenu.add(popupMenu_Sele

32、ctAll); /右鍵菜單注冊事件 popupMenu_Undo.addActionListener(this); popupMenu_Redo.addActionListener(this); popupMenu_Cut.addActionListener(this); popupMenu_Copy.addActionListener(this); popupMenu_Paste.addActionListener(this); popupMenu_Delete.addActionListener(this); popupMenu_SelectAll.addActionListener(th

33、is);(4)模擬寫字板替換消息框設(shè)計(jì):如圖4.5所示,在輸入框中輸入要替換的內(nèi)容,點(diǎn)擊查找下一個(gè)按鈕,就會在顯示文本區(qū)域找到要查找的內(nèi)容并且會替換。圖4.5 模擬寫字板查找界面(5)模擬寫字板消息提示框設(shè)計(jì):如圖4.6所示,消息提示框的顯示區(qū)域顯示提示動(dòng)畫和提示的內(nèi)容。界面的下方左側(cè)為確認(rèn)保存功能按鈕,下方中間為不保存按鈕,下方右側(cè)為取消操作按鈕。圖4.6 模擬寫字板保存界面代碼如下:public void actionPerformed(ActionEvent e) /保存 else if(e.getSource()=fileMenu_Save) editArea.requestFocus

34、(); if(isNewFile) String str=null; JFileChooser fileChooser=new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); fileChooser.setApproveButtonText("確定"); fileChooser.setDialogTitle("另存為"); int result=fileChooser.showSaveDialog(this); if(result=JFileChoose

35、r.CANCEL_OPTION) statusLabel.setText("您沒有選擇任何文件"); return; File saveFileName=fileChooser.getSelectedFile(); if(saveFileName=null|saveFileName.getName().equals("") JOptionPane.showMessageDialog(this,"不合法的文件名","不合法的文件名",JOptionPane.ERROR_MESSAGE); else try FileW

36、riter fw=new FileWriter(saveFileName); BufferedWriter bfw=new BufferedWriter(fw); bfw.write(editArea.getText(),0,editArea.getText().length(); bfw.flush(); fw.close(); isNewFile=false; currentFile=saveFileName; oldValue=editArea.getText(); this.setTitle(saveFileName.getName()+" - 寫字板"); sta

37、tusLabel.setText("當(dāng)前打開文件:"+saveFileName.getAbsoluteFile(); catch(IOException ioException) else try FileWriter fw=new FileWriter(currentFile); BufferedWriter bfw=new BufferedWriter(fw); bfw.write(editArea.getText(),0,editArea.getText().length(); bfw.flush(); fw.close(); catch(IOException io

38、Exception) /"保存"處理結(jié)束 /另存為 else if(e.getSource()=fileMenu_SaveAs) editArea.requestFocus(); String str=null; JFileChooser fileChooser=new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); fileChooser.setApproveButtonText("確定"); fileChooser.setDialogTitle(&q

39、uot;另存為"); int result=fileChooser.showSaveDialog(this); if(result=JFileChooser.CANCEL_OPTION) statusLabel.setText("您沒有選擇任何文件"); return; File saveFileName=fileChooser.getSelectedFile(); if(saveFileName=null|saveFileName.getName().equals("") JOptionPane.showMessageDialog(this,

40、"不合法的文件名","不合法的文件名",JOptionPane.ERROR_MESSAGE); else try FileWriter fw=new FileWriter(saveFileName); BufferedWriter bfw=new BufferedWriter(fw); bfw.write(editArea.getText(),0,editArea.getText().length(); bfw.flush(); fw.close(); oldValue=editArea.getText(); this.setTitle(saveFile

41、Name.getName()+" - 寫字板"); statusLabel.setText("當(dāng)前打開文件:"+saveFileName.getAbsoluteFile(); catch(IOException ioException) /"另存為"處理結(jié)束(6)模擬寫字板格式設(shè)計(jì)如圖4.7,在模擬寫字板的格式菜單下,點(diǎn)擊格式,出現(xiàn)下拉菜單自動(dòng)換行和字體,自動(dòng)換行選中后,在自動(dòng)換行前面會出現(xiàn)一個(gè)對勾,寫字板出現(xiàn)自動(dòng)換行模式,點(diǎn)擊字體,可以對字體進(jìn)行修改。圖4.7模擬寫字板格式界面(7)模擬寫字板撤消設(shè)計(jì)如圖4.8,在模擬寫字板的編輯菜

42、單下,點(diǎn)擊編輯,出現(xiàn)下拉菜單撤消,撤消選中后,會對上一個(gè)寫字板中的行為進(jìn)行撤消。圖4.8模擬寫字板撤消界面(8)模擬寫字板時(shí)間日期設(shè)計(jì)如圖4.9,在模擬寫字板的編輯菜單下,點(diǎn)擊編輯,出現(xiàn)下拉菜單時(shí)間和日期,點(diǎn)擊時(shí)間日期后,會在寫字板中添加電腦當(dāng)時(shí)的時(shí)間。圖4.9模擬寫字板時(shí)間日期界面(9)模擬寫字板剪切、復(fù)制、粘貼、刪除設(shè)計(jì)如圖4.10,在模擬寫字板的編輯菜單下,點(diǎn)擊編輯,出現(xiàn)下拉菜單剪切、復(fù)制、粘貼、刪除,點(diǎn)擊剪切、復(fù)制、粘貼、刪除后,會對寫字板中選中的文字進(jìn)行對應(yīng)的操作。圖4.10模擬寫字板剪切、復(fù)制、粘貼、刪除界面代碼如下:/設(shè)置菜單項(xiàng)的可用性:剪切,復(fù)制,粘貼,刪除功能 public

43、void checkMenuItemEnabled() String selectText=editArea.getSelectedText(); if(selectText=null) editMenu_Cut.setEnabled(false); popupMenu_Cut.setEnabled(false); editMenu_Copy.setEnabled(false); popupMenu_Copy.setEnabled(false); editMenu_Delete.setEnabled(false); popupMenu_Delete.setEnabled(false); els

44、e editMenu_Cut.setEnabled(true); popupMenu_Cut.setEnabled(true); editMenu_Copy.setEnabled(true); popupMenu_Copy.setEnabled(true); editMenu_Delete.setEnabled(true); popupMenu_Delete.setEnabled(true); /粘貼功能可用性判斷 Transferable contents=clipBoard.getContents(this); if(contents=null) editMenu_Paste.setEna

45、bled(false); popupMenu_Paste.setEnabled(false); else editMenu_Paste.setEnabled(true); popupMenu_Paste.setEnabled(true); /剪切 else if(e.getSource()=editMenu_Cut|e.getSource()=popupMenu_Cut) editArea.requestFocus(); String text=editArea.getSelectedText(); StringSelection selection=new StringSelection(t

46、ext); clipBoard.setContents(selection,null); editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd(); checkMenuItemEnabled(); /設(shè)置剪切、復(fù)制、粘貼、刪除等功能的可用性 /復(fù)制 else if(e.getSource()=editMenu_Copy|e.getSource()=popupMenu_Copy) editArea.requestFocus(); String text=editArea.g

47、etSelectedText(); StringSelection selection=new StringSelection(text); clipBoard.setContents(selection,null); checkMenuItemEnabled(); /設(shè)置剪切、復(fù)制、粘貼、刪除等功能的可用性 /粘貼 else if(e.getSource()=editMenu_Paste|e.getSource()=popupMenu_Paste) editArea.requestFocus(); Transferable contents=clipBoard.getContents(thi

48、s); if(contents=null) return; String text; text="" try text=(String)contents.getTransferData(DataFlavor.stringFlavor); catch(Exception exception) editArea.replaceRange(text,editArea.getSelectionStart(),editArea.getSelectionEnd(); checkMenuItemEnabled(); /設(shè)置剪切、復(fù)制、粘貼、刪除等功能的可用性 /刪除 else if(e.

49、getSource()=editMenu_Delete|e.getSource()=popupMenu_Delete) editArea.requestFocus(); editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd(); checkMenuItemEnabled(); /設(shè)置剪切、復(fù)制、粘貼、刪除等功能的可用性 (10)模擬寫字板轉(zhuǎn)碼、轉(zhuǎn)到設(shè)計(jì)如圖4.11和4.12,在模擬寫字板的菜單下,點(diǎn)擊相應(yīng)功能,出現(xiàn)下拉菜單轉(zhuǎn)碼、轉(zhuǎn)到,點(diǎn)擊轉(zhuǎn)碼或轉(zhuǎn)到后,會對寫字板中的文字進(jìn)

50、行相應(yīng)操作。圖4.11模擬寫字板轉(zhuǎn)碼界面代碼如下:public void myCode()JDialog codeDialog=new JDialog(this,"編碼轉(zhuǎn)換",true); Container con=codeDialog.getContentPane(); con.setLayout(new GridLayout(3,1); JLabel oldTypeLabel=new JLabel("源碼格式 :"); JLabel newTypeLabel=new JLabel("轉(zhuǎn)碼格式:"); final JButton

51、change=new JButton("轉(zhuǎn)碼"); final JComboBox box1 = new JComboBox(new Object"GBK","UTF-8","GB2312"); final JComboBox box2 = new JComboBox(new Object"GBK","UTF-8","GB2312"); /給轉(zhuǎn)換按鈕實(shí)現(xiàn)監(jiān)聽 change.addActionListener(new ActionListener() /通過

52、輸入輸出流實(shí)現(xiàn)編碼的轉(zhuǎn)換public void actionPerformed(ActionEvent e) String str1 = (String) box1.getSelectedItem();String str2 = (String) box2.getSelectedItem();try String newStr = new String(editArea.getText().getBytes(str2), str1);editArea.setText(newStr); catch (UnsupportedEncodingException e1) e1.printStackTr

53、ace();); JPanel bottomPanel=new JPanel(); JPanel centerPanel=new JPanel(); JPanel topPanel=new JPanel(); topPanel.add(oldTypeLabel); topPanel.add(box1); centerPanel.add(newTypeLabel); centerPanel.add(box2); bottomPanel.add(change); con.add(topPanel); con.add(centerPanel); con.add(bottomPanel); codeD

54、ialog.setSize(260,210); codeDialog.setResizable(false); codeDialog.setLocation(230,280); codeDialog.setVisible(true);圖4.12模擬寫字板轉(zhuǎn)到界面(11)模擬寫字板退出設(shè)計(jì)如圖4.13,在模擬寫字板的文件菜單下,點(diǎn)擊文件,出現(xiàn)下拉菜單退出,點(diǎn)擊全選后,會對寫字板進(jìn)行退出操作。圖4.13模擬寫字板退出界面代碼如下:/退出 else if(e.getSource()=fileMenu_Exit) int exitChoose=JOptionPane.showConfirmDialog(this,"確定要退出么?","退出提示",JOptionPane.OK_CANCEL_OPTION); if(exitChoose=JOptionPane.OK_OPTION) System.exit(0); else return; (12)模擬寫字板狀態(tài)欄設(shè)計(jì)如圖4.14,在模擬寫字板的查看菜單下,點(diǎn)擊查看,出現(xiàn)下拉菜單狀態(tài)欄,點(diǎn)擊狀態(tài)欄后,會對寫字板進(jìn)行狀態(tài)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論