java課程設(shè)計(jì)文本編輯器_第1頁
java課程設(shè)計(jì)文本編輯器_第2頁
java課程設(shè)計(jì)文本編輯器_第3頁
java課程設(shè)計(jì)文本編輯器_第4頁
java課程設(shè)計(jì)文本編輯器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、湖南人文科技學(xué)院計(jì)算機(jī)系課程設(shè)計(jì)報(bào)告課程名稱:java程序設(shè)計(jì)課程代碼:408026題 目:文本編輯器年級(jí)/專業(yè)/班:07級(jí)計(jì)算機(jī)科學(xué)與技術(shù)1班學(xué)生姓名:肖毅、陳耀學(xué) 號(hào):07408131、07408145指導(dǎo)老師:郭 廣 軍開題時(shí)間:2008年12月22日完成時(shí)間:2009年01月03日2009年1月5日11湖南人文科技學(xué)院java課程設(shè)計(jì)報(bào)告 前 言java課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的專業(yè)實(shí)踐必修課程,是學(xué)習(xí)java程序設(shè)計(jì)課程非常重要的綜合性實(shí)踐教學(xué)環(huán)節(jié)。課程設(shè)計(jì)是檢驗(yàn)學(xué)生是否掌握相關(guān)專業(yè)課程知識(shí)的重要手段,同時(shí)課程設(shè)計(jì)應(yīng)充分體現(xiàn)“教師指導(dǎo)下的以學(xué)生為中心”的教學(xué)模式,以學(xué)生為認(rèn)

2、知主體,充分調(diào)動(dòng)學(xué)生的積極性和能動(dòng)性,重視學(xué)生實(shí)踐應(yīng)用能力和自學(xué)能力的培養(yǎng)。課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定課程名稱:java程序設(shè)計(jì)完成者:肖毅、陳耀1 、設(shè)計(jì)的目的與要求(1)設(shè)計(jì)的目的: java課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的專業(yè)實(shí)踐必修課程,是學(xué)習(xí)java程序設(shè)計(jì)課程非常重要的綜合性實(shí)踐教學(xué)環(huán)節(jié)。課程設(shè)計(jì)是檢驗(yàn)學(xué)生是否掌握相關(guān)專業(yè)課程知識(shí)的重要手段,同時(shí)課程設(shè)計(jì)應(yīng)充分體現(xiàn)“教師指導(dǎo)下的以學(xué)生為中心”的教學(xué)模式,以學(xué)生為認(rèn)知主體,充分調(diào)動(dòng)學(xué)生的積極性和能動(dòng)性,重視學(xué)生實(shí)踐應(yīng)用能力和自學(xué)能力的培養(yǎng)。通過設(shè)計(jì)文本編輯器并實(shí)現(xiàn)其功能來熟練掌握java語言基礎(chǔ),初步掌握軟件開發(fā)中系統(tǒng)分析、系統(tǒng)設(shè)計(jì)

3、、系統(tǒng)實(shí)現(xiàn)和系統(tǒng)測(cè)試等階段的基本方法與技術(shù),培養(yǎng)學(xué)生的創(chuàng)新意識(shí),提高實(shí)踐應(yīng)用能力,為培養(yǎng)應(yīng)用型人才服務(wù)。(2)做文本編輯器的要求:<1> 菜單要求: 要求有新建 、保存、另存為、退出 、拷貝、剪切、粘貼、幫助等功能。<2>要求其操作簡(jiǎn)單、界面清晰、靈活、實(shí)用、方便。<3>要求程序須經(jīng)調(diào)試,并添加異常處理和代碼注釋,同時(shí)在功能實(shí)現(xiàn)后,要將代碼進(jìn)行優(yōu)化。<4>最好能響應(yīng)鍵盤和鼠標(biāo)事件,同時(shí)可添加快捷鍵。 2 、設(shè)計(jì)進(jìn)度及完成情況日 期內(nèi) 容2008年12月22日準(zhǔn)備和審題、接受任務(wù),開發(fā)環(huán)境配置等2008年12月2324日查找相關(guān)資料,系統(tǒng)調(diào)查,需求

4、分析2008年12月25日系統(tǒng)建模2008年12月26日概要設(shè)計(jì)2008年12月2728日詳細(xì)設(shè)計(jì)2008年12月2931日編碼測(cè)試2008年01月01日部署、配置、運(yùn)行2009年01月0203日撰寫課程設(shè)計(jì)報(bào)告2009年01月04日課程設(shè)計(jì)總結(jié)2009年01月05日正式提交課程設(shè)計(jì)報(bào)告和系統(tǒng)源程序3、成績(jī)?cè)u(píng)定設(shè)計(jì)成績(jī): (教師填寫)指導(dǎo)老師: (簽 字)2009 年 月 日目 錄1引言12設(shè)計(jì)任務(wù)與目的14 系統(tǒng)設(shè)計(jì)24.1 總體設(shè)計(jì)34.1.1 系統(tǒng)類圖34.2詳細(xì)設(shè)計(jì)36 系統(tǒng)實(shí)現(xiàn)66.1 系統(tǒng)主要用例的實(shí)現(xiàn)76.1.1運(yùn)行用例運(yùn)行效果76.1.2 打開文檔用例運(yùn)行效果76.1.3 關(guān)于

5、用例運(yùn)行效果87 結(jié)束語8參考文獻(xiàn)9致謝9附錄a:系統(tǒng)源程序9附錄b:編碼規(guī)范12文本編輯器1 引言計(jì)算機(jī)的普及發(fā)展,軟件行業(yè)在社會(huì)占著舉足輕重的作用?,F(xiàn)今市場(chǎng)中存在的文本編輯器已不是少數(shù)幾種,而且功能已相對(duì)齊全,但我們作為未來從事軟件行業(yè)的專業(yè)人士,借著軟件發(fā)展的周期,研究這個(gè)課題,在學(xué)習(xí)過程掌握文本編輯器以及java的相關(guān)知識(shí)很有必要,既隨科技發(fā)展的前沿,又方便了我們的生活。事實(shí)上,因?yàn)闀簳r(shí)知識(shí)的限制性,我們只能做一個(gè)比較簡(jiǎn)單的文本編輯器,通過一學(xué)期對(duì)java 的了解和課程設(shè)計(jì)培訓(xùn),以及對(duì)文本編輯器主要功能的詳細(xì)研究,我們將其功能轉(zhuǎn)化為了程序代碼。主要分為編輯區(qū)、輸入?yún)^(qū)等,此文本編輯器含有

6、保存、 退出、查找、拷貝、剪切、粘貼等簡(jiǎn)要功能,其操作簡(jiǎn)單、界面清晰、靈活、實(shí)用、方便等優(yōu)點(diǎn),適用于簡(jiǎn)便的存檔及撰寫文稿。2 設(shè)計(jì)任務(wù)與目的1)設(shè)計(jì)一個(gè)簡(jiǎn)單的文本編輯器,可以實(shí)現(xiàn)以下功能: 1:文件的新建,打開,保存和另存; 2:對(duì)文件的編輯,如全選,復(fù)制,剪切,粘貼; 3:執(zhí)行完操作后,能夠順利關(guān)閉記事本。 2)通過這次設(shè)計(jì),可以幫助學(xué)生:1:提高對(duì)java語言設(shè)計(jì)的掌握能力; 2:理論聯(lián)系實(shí)際,進(jìn)一步提高學(xué)生的軟件開發(fā)技術(shù); 3:培養(yǎng)學(xué)生分析、解決問題的能力。3. 需求分析 在科學(xué)技術(shù)飛速發(fā)展的今天,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越

7、重要的作用。應(yīng)用java技術(shù)實(shí)現(xiàn)學(xué)生學(xué)習(xí)實(shí)踐是可行而必要的工作 。在社會(huì)生活中我們經(jīng)常需要用電腦編寫一些文檔來保存文件,本課程設(shè)計(jì)是運(yùn)用了java軟件開發(fā)工具開發(fā)的應(yīng)用軟件。適合編寫記錄文件。 訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)java語言的基本知識(shí),熟練的完成問題分析、算法設(shè)計(jì)、編寫程序,求解出指定的問題;訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),鞏固、深化學(xué)生的理論知識(shí),提高編程水平,并在此過程中培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng); 提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問題的能力運(yùn)行要求: 由于本程序是運(yùn)用java語言編成的,所以首先必須在電腦上安裝java虛擬機(jī),并對(duì)環(huán)境變量進(jìn)行設(shè)置。

8、完成java的環(huán)境設(shè)置后,在集成環(huán)境eclipse中進(jìn)行編程。 4 系統(tǒng)設(shè)計(jì)4.1 總體設(shè)計(jì)4.1.1 系統(tǒng)類圖圖4-1 系統(tǒng)類圖4.2 詳細(xì)設(shè)計(jì)(1)類或包的加載 import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.text.*;(2). 設(shè)計(jì)一個(gè)主類,變量的定義public class editordemo extends jframe jtextpane textpane = new jtextpane(); /文本窗格,編輯窗口 jlabel

9、 statusbar = new jlabel(); /狀態(tài)欄 jfilechooser filechooser = new jfilechooser(); /文件選擇器 public editordemo() /構(gòu)造函數(shù) super("簡(jiǎn)單的文本編輯器"); /調(diào)用父類構(gòu)造函數(shù) action actions = /action數(shù)組,各種操作命令 new newaction(), new openaction(), new saveaction(), new cutaction(), new copyaction(), new pasteaction(), new abou

10、taction(), new exitaction(); setjmenubar(createjmenubar(actions); /設(shè)置菜單欄 container container = getcontentpane(); /得到容器 container.add(createjtoolbar(actions), borderlayout.north); /增加工具欄 container.add(textpane, borderlayout.center); /增加文本窗格 container.add(statusbar, borderlayout.south); /增加狀態(tài)欄 setsize

11、(330, 200); /設(shè)置窗口尺寸 setvisible(true); /設(shè)置窗口可視 setdefaultcloseoperation(jframe.exit_on_close); /關(guān)閉窗口時(shí)退出程序 private jmenubar createjmenubar(action actions) /創(chuàng)建菜單欄 jmenubar menubar = new jmenubar(); /實(shí)例化菜單欄 jmenu menufile = new jmenu("文件"); /實(shí)例化菜單 jmenu menuedit = new jmenu("編輯"); jm

12、enu menuabout = new jmenu("幫助"); menufile.add(new jmenuitem(actions0); /增加新菜單項(xiàng) menufile.add(new jmenuitem(actions1); menufile.add(new jmenuitem(actions2); menufile.add(new jmenuitem(actions7); menuedit.add(new jmenuitem(actions3); menuedit.add(new jmenuitem(actions4); menuedit.add(new jmen

13、uitem(actions5); menuabout.add(new jmenuitem(actions6); menubar.add(menufile); /增加菜單 menubar.add(menuedit); menubar.add(menuabout); return menubar; /返回菜單欄 private jtoolbar createjtoolbar(action actions) /創(chuàng)建工具條 jtoolbar toolbar = new jtoolbar(); /實(shí)例化工具條 for (int i = 0; i < actions.length; i+) jbut

14、ton bt = new jbutton(actionsi); /實(shí)例化新的按鈕 bt.setrequestfocusenabled(false); /設(shè)置不需要焦點(diǎn) toolbar.add(bt); /增加按鈕到工具欄 return toolbar; /返回工具欄 (3).文件操作功能的實(shí)現(xiàn)class newaction extends abstractaction /新建文件命令 public newaction() super("新建"); public void actionperformed(actionevent e) textpane.setdocument(

15、new defaultstyleddocument(); /清空文檔 class openaction extends abstractaction /打開文件命令 public openaction() super("打開"); public void actionperformed(actionevent e) int i = filechooser.showopendialog(editordemo.this); /顯示打開文件對(duì)話框 if (i = jfilechooser.approve_option) /點(diǎn)擊對(duì)話框中打開選項(xiàng) file f = filechoos

16、er.getselectedfile(); /得到選擇的文件 try inputstream is = new fileinputstream(f); /得到文件輸入流 textpane.read(is, "d"); /讀入文件到文本窗格 catch (exception ex) ex.printstacktrace(); /輸出出錯(cuò)信息 class saveaction extends abstractaction /保存命令 public saveaction() super("保存"); public void actionperformed(ac

17、tionevent e) int i = filechooser.showsavedialog(editordemo.this); /顯示保存文件對(duì)話框 if (i = jfilechooser.approve_option) /點(diǎn)擊對(duì)話框中保存按鈕 file f = filechooser.getselectedfile(); /得到選擇的文件 try fileoutputstream out = new fileoutputstream(f); /得到文件輸出流 out.write(textpane.gettext().getbytes(); /寫出文件 catch (exception

18、ex) ex.printstacktrace(); /輸出出錯(cuò)信息 class exitaction extends abstractaction /退出命令 public exitaction() super("退出"); public void actionperformed(actionevent e) system.exit(0); /退出程序 class cutaction extends abstractaction /剪切命令 public cutaction() super("剪切"); public void actionperform

19、ed(actionevent e) textpane.cut(); /調(diào)用文本窗格的剪切命令 class copyaction extends abstractaction /拷貝命令 public copyaction() super("拷貝"); public void actionperformed(actionevent e) textpane.copy(); /調(diào)用文本窗格的拷貝命令 class pasteaction extends abstractaction /粘貼命令 public pasteaction() super("粘貼");

20、public void actionperformed(actionevent e) textpane.paste(); /調(diào)用文本窗格的粘貼命令 class aboutaction extends abstractaction /關(guān)于選項(xiàng)命令 public aboutaction() super("關(guān)于"); public void actionperformed(actionevent e) joptionpane.showmessagedialog(editordemo.this, "簡(jiǎn)單的文本編輯器演示"); /顯示軟件信息 public sta

21、tic void main(string args) new editordemo(); 6 系統(tǒng)實(shí)現(xiàn)6.1 系統(tǒng)主要用例的實(shí)現(xiàn)6.1.1運(yùn)行用例運(yùn)行效果 圖6-1 運(yùn)行用例運(yùn)行效果圖6.1.2 打開文檔用例運(yùn)行效果圖6-2 打開文件用例運(yùn)行效果圖6.1.3 關(guān)于用例運(yùn)行效果 圖6-3 用例演示運(yùn)行效果7 結(jié)束語作為計(jì)算機(jī)科學(xué)與技術(shù)大二的學(xué)生,我覺得能做類似的課程設(shè)計(jì)是十分有意義,而且是十分必要的。在已度過的大二的時(shí)間里我們大多數(shù)接觸的是專業(yè)基礎(chǔ)課。我們?cè)谡n堂上掌握的僅僅是專業(yè)基礎(chǔ)課的理論面,如何去鍛煉我們的實(shí)踐面?如何把我們所學(xué)到的專業(yè)基礎(chǔ)理論知識(shí)用到實(shí)踐中去呢?我想做類似的大作業(yè)就為我們提

22、供了良好的實(shí)踐平臺(tái)。在做本次課程設(shè)計(jì)的過程中,我感觸最深的當(dāng)數(shù)查閱大量的書籍了。為了讓自己的設(shè)計(jì)更加完善,更加符合軟件工程標(biāo)準(zhǔn),一次次翻閱各種參考資料是十分必要的,同時(shí)也是必不可少的。我們是在作設(shè)計(jì),但我們不是藝術(shù)家。他們可以拋開實(shí)際,盡情在幻想的世界里翱翔,我們是軟件設(shè)計(jì)師,一切都要有據(jù)可依.有理可尋,不切實(shí)際的構(gòu)想永遠(yuǎn)只能是構(gòu)想,永遠(yuǎn)無法升級(jí)為設(shè)計(jì)。作為一名專業(yè)學(xué)生掌握一門或幾門程序設(shè)計(jì)語言是必不可少的,由于本次課程設(shè)計(jì)要求用java進(jìn)行開發(fā),在這過程中我對(duì)各種的開發(fā)環(huán)境進(jìn)行了探索,這使我對(duì)java的集成開發(fā)環(huán)境有了更深刻的理解雖然去從未獨(dú)立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效

23、率好高,記得大一學(xué)c語言好難就是因?yàn)槲覀儧]有把自己放在使用者的角度,單單是為了學(xué)而學(xué),這樣效率當(dāng)然不會(huì)高。邊學(xué)邊用這樣才會(huì)提高效率,這是我作本次課程設(shè)計(jì)的第二大收獲。但是由于水平有限,難免會(huì)有錯(cuò)誤,還望老師批評(píng)指正。參考文獻(xiàn) 1 張廣彬,孟紅蕊,張永寶.java課程設(shè)計(jì)案例精編m.北京:清華大學(xué)出版社,2007,1.2 黃曉東.java課程設(shè)計(jì)案例精編m.北京:中國(guó)水利水電出版社,2004,5.3 求是科技. java信息管理系統(tǒng)開發(fā)實(shí)例導(dǎo)航m.北京:人民郵電出版社,2005,4.4 求是科技.java數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航m.北京:人民郵電出版社,2004,9. 5 java編程思想,機(jī)械工

24、業(yè)出版社,1999年4月6java項(xiàng)目設(shè)計(jì)與開發(fā)范例,電子工業(yè)出版社,2005年4月,唐小軍等7標(biāo)準(zhǔn)java 2 使用手冊(cè),電子工業(yè)出版社,2005年1月,魏海萍8java開放源碼編程,電子工業(yè)出版社,2005年1月,沃納斯致謝非常感謝郭廣軍老師對(duì)我們的指導(dǎo),讓我們能學(xué)會(huì)這門課程并且成功地完成了本次課程設(shè)計(jì),還有設(shè)計(jì)過程中給予我們幫助的同學(xué)、朋友,有了大家的共同努力才有今天的成果。附錄a:系統(tǒng)源程序package wenben;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;impo

25、rt javax.swing.text.*;/簡(jiǎn)單的文本編輯器public class editordemo extends jframe jtextpane textpane = new jtextpane(); /文本窗格,編輯窗口 jlabel statusbar = new jlabel(); /狀態(tài)欄 jfilechooser filechooser = new jfilechooser(); /文件選擇器 public editordemo() /構(gòu)造函數(shù) super("簡(jiǎn)單的文本編輯器"); /調(diào)用父類構(gòu)造函數(shù) action actions = /action

26、數(shù)組,各種操作命令 new newaction(), new openaction(), new saveaction(), new cutaction(), new copyaction(), new pasteaction(), new aboutaction(), new exitaction(); setjmenubar(createjmenubar(actions); /設(shè)置菜單欄 container container = getcontentpane(); /得到容器 container.add(createjtoolbar(actions), borderlayout.nort

27、h); /增加工具欄 container.add(textpane, borderlayout.center); /增加文本窗格 container.add(statusbar, borderlayout.south); /增加狀態(tài)欄 setsize(330, 200); /設(shè)置窗口尺寸 setvisible(true); /設(shè)置窗口可視 setdefaultcloseoperation(jframe.exit_on_close); /關(guān)閉窗口時(shí)退出程序 private jmenubar createjmenubar(action actions) /創(chuàng)建菜單欄 jmenubar menuba

28、r = new jmenubar(); /實(shí)例化菜單欄 jmenu menufile = new jmenu("文件"); /實(shí)例化菜單 jmenu menuedit = new jmenu("編輯"); jmenu menuabout = new jmenu("幫助"); menufile.add(new jmenuitem(actions0); /增加新菜單項(xiàng) menufile.add(new jmenuitem(actions1); menufile.add(new jmenuitem(actions2); menufile.a

29、dd(new jmenuitem(actions7); menuedit.add(new jmenuitem(actions3); menuedit.add(new jmenuitem(actions4); menuedit.add(new jmenuitem(actions5); menuabout.add(new jmenuitem(actions6); menubar.add(menufile); /增加菜單 menubar.add(menuedit); menubar.add(menuabout); return menubar; /返回菜單欄 private jtoolbar cre

30、atejtoolbar(action actions) /創(chuàng)建工具條 jtoolbar toolbar = new jtoolbar(); /實(shí)例化工具條 for (int i = 0; i < actions.length; i+) jbutton bt = new jbutton(actionsi); /實(shí)例化新的按鈕 bt.setrequestfocusenabled(false); /設(shè)置不需要焦點(diǎn) toolbar.add(bt); /增加按鈕到工具欄 return toolbar; /返回工具欄 class newaction extends abstractaction /新

31、建文件命令 public newaction() super("新建"); public void actionperformed(actionevent e) textpane.setdocument(new defaultstyleddocument(); /清空文檔 class openaction extends abstractaction /打開文件命令 public openaction() super("打開"); public void actionperformed(actionevent e) int i = filechooser

32、.showopendialog(editordemo.this); /顯示打開文件對(duì)話框 if (i = jfilechooser.approve_option) /點(diǎn)擊對(duì)話框中打開選項(xiàng) file f = filechooser.getselectedfile(); /得到選擇的文件 try inputstream is = new fileinputstream(f); /得到文件輸入流 textpane.read(is, "d"); /讀入文件到文本窗格 catch (exception ex) ex.printstacktrace(); /輸出出錯(cuò)信息 class saveaction extends abstractaction /保存命令 public saveaction() super("保存"); public void actionperformed(actionevent e) int i = filechooser.showsavedialog(editordemo.this); /顯示保存文件對(duì)話框 if (i = jfilechooser.approve_option) /點(diǎn)擊對(duì)話框中保存按鈕 file f = filechooser.get

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論