版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、java語(yǔ)言課程設(shè)計(jì)報(bào)告題 目:記事本的制作設(shè) 計(jì) 者: 專業(yè)班級(jí):學(xué) 號(hào):指導(dǎo)教師: 2011年 11 月 26 日河南理工大學(xué)計(jì)算機(jī)學(xué)院目錄摘要1一、本組課題及程序功能要求2二、系統(tǒng)需求分析22.1 系統(tǒng)名稱22.2 系統(tǒng)介紹32.3 開(kāi)發(fā)背景3三、系統(tǒng)總體設(shè)計(jì)33.1系統(tǒng)功能結(jié)構(gòu)圖33.2系統(tǒng)數(shù)據(jù)流程圖3四、系統(tǒng)設(shè)計(jì)介紹44.1 java語(yǔ)言的基本知識(shí)44.2 本程序所用知識(shí)點(diǎn)64.3 io流7五、 程序代碼設(shè)計(jì)9六、系統(tǒng)效果演示12七、設(shè)計(jì)體會(huì)15參考文獻(xiàn)15附:程序清單15 摘要現(xiàn)在網(wǎng)絡(luò)上各種記事本軟件數(shù)不勝數(shù),功能也是應(yīng)有盡有,有能改變字體的,有能改變顏色的。但是,這些軟件又存在各
2、種各樣的瑕疵或問(wèn)題:有的文件體積相對(duì)于一般文字編輯來(lái)說(shuō)太大;有的功能太繁瑣,是初級(jí)使用者一時(shí)難以掌握,僅從日常應(yīng)用方面來(lái)說(shuō),一個(gè)記事本只需一些簡(jiǎn)單實(shí)用的功能就夠了。本程序設(shè)計(jì)就是依照這樣一種使用需求設(shè)計(jì)了一個(gè)的簡(jiǎn)單的記事本程序。該程序報(bào)告里的程序是使用java編寫的,實(shí)現(xiàn)記事本的功能,參考windows中記事本的功能。要求打開(kāi)文件,讀取文件中的文本信息。顯示、編輯修改文本信息。java記事本采用的是javase中的gui和io基本技術(shù),可以實(shí)現(xiàn)文本的簡(jiǎn)單操作,如:打開(kāi)文檔、編輯文檔、保存文檔等。一、本組課題及程序功能要求課題名稱:java記事本的制作要求:設(shè)計(jì)一個(gè)類似于window記事本的ja
3、va程序,可以基本實(shí)現(xiàn)以下功能1) 文件的打開(kāi)、編輯、保存。2) 對(duì)文本的各種編輯操作。3) 執(zhí)行完操作后,能夠順利關(guān)閉記事本。二、系統(tǒng)需求分析2.1 系統(tǒng)名稱 java記事本2.2 系統(tǒng)介紹java記事本采用的是javase中的gui和io基本技術(shù),可以實(shí)現(xiàn)文本的簡(jiǎn)單操作,如:打開(kāi)文檔、編輯文檔、保存文檔等。具體操作如下:1.點(diǎn)擊文件打開(kāi) 可以瀏覽電腦上的文件。2.當(dāng)選擇一個(gè)txt文件時(shí),確定可以打開(kāi)此文件。3.在文檔顯示界面可以輸入文檔對(duì)其進(jìn)行編輯。4.當(dāng)選擇保存時(shí),可以保存到指定的位置。5.點(diǎn)擊退出功能按鍵可以退出本記事本程序。2.3 開(kāi)發(fā)背景現(xiàn)在網(wǎng)絡(luò)上各種記事本軟件數(shù)不勝數(shù),功能也是應(yīng)
4、有盡有,有能改變字體的,有能改變顏色的。但是,這些軟件又存在各種各樣的瑕疵或問(wèn)題:有的文件體積相對(duì)于一般文字編輯來(lái)說(shuō)太大;有的功能太繁瑣,是初級(jí)使用者一時(shí)難以掌握,僅從日常應(yīng)用方面來(lái)說(shuō),一個(gè)記事本只需一些簡(jiǎn)單實(shí)用的功能就夠了。本程序設(shè)計(jì)就是依照這樣一種使用需求設(shè)計(jì)了一個(gè)的簡(jiǎn)單的記事本程序。三、系統(tǒng)總體設(shè)計(jì)打開(kāi)3.1系統(tǒng)功能結(jié)構(gòu)圖文件保存退出記事本編輯顯示界面文字顯示3.2系統(tǒng)數(shù)據(jù)流程圖文本文檔打開(kāi)主界面打開(kāi)編輯文本文檔保存退出四、系統(tǒng)設(shè)計(jì)介紹4.1 java語(yǔ)言的基本知識(shí)(1)java平臺(tái)分類javase(java platform standard edition)java平臺(tái)標(biāo)準(zhǔn)版,包含那
5、些構(gòu)成java語(yǔ)言核心的類,可以理解為學(xué)習(xí)java的基礎(chǔ)javaee(java platform enterpriseedition)java平臺(tái)企業(yè)版,包含javase,并且還包含用于開(kāi)發(fā)企業(yè)級(jí)應(yīng)用的類準(zhǔn)確的說(shuō)javaee是一套用于企業(yè)開(kāi)發(fā)的技術(shù)規(guī)范,包含很多組件,13種核心技術(shù),如:xml、jsp、servlet、jdbc、java mail等javame(java platform micro edition)java平臺(tái)微型版,包含javase的一部分,另外提供一些用于小型設(shè)備上的類,例如:手機(jī)、機(jī)頂盒、汽車導(dǎo)航儀java語(yǔ)言的編譯過(guò)程如下圖所示:(2) java語(yǔ)言的基本格式所有ja
6、va代碼都應(yīng)該在一個(gè)class中java是嚴(yán)格區(qū)分大小寫的java是一種自由格式的語(yǔ)言。java代碼分為結(jié)構(gòu)定義語(yǔ)句和功能執(zhí)行語(yǔ)句,功能執(zhí)行語(yǔ)句最后必須以分號(hào)結(jié)束。(3)java語(yǔ)言的標(biāo)識(shí)符通用規(guī)范類名、接口名:所有單詞首字母大寫,駝峰式命名,例如:xxxyyyzzz變量名、函數(shù)名:第一個(gè)單詞首字母小寫,其他單詞首字母大寫,駝峰式命名,例如:xxxyyyzzz常量名:所有字母都大寫,單詞之間用下劃線分割,例如:xxx_yyy_zzz包名:全部小寫,例如:xxx.yyy.zzz(4) java語(yǔ)言的關(guān)鍵字注:java 無(wú)sizeof ,goto, const 關(guān)鍵字,但不能用goto const
7、作為變量名4.2 本程序所用知識(shí)點(diǎn)(1) gui概念gui是graphical user interface的縮寫,圖形化用戶界面(2) 布局管理flowlayout(流式布局管理器)從左到右的順序排列。borderlayout(邊界布局管理器)東,南,西,北,中g(shù)ridlayout(網(wǎng)格布局管理器)規(guī)則的矩陣cardlayout(卡片布局管理器)選項(xiàng)卡gridbaglayout(網(wǎng)格包布局管理器)非規(guī)則的矩陣 (3) 建立一個(gè)窗體窗體中可以存放各種組件,所以窗體是容器container。創(chuàng)建時(shí)我們使用的是它的子類container的常用子類有兩個(gè),window和panel。window是我們
8、常用的窗體,panel是用來(lái)布局的不可見(jiàn)的。window也有兩個(gè)常用子類,frame和dialog。frame是我們常用的帶有標(biāo)題和邊框的頂層窗口,dialog是對(duì)話框。所有awt包中的類都會(huì)運(yùn)行在awt線程上(4) 事件處理事件處理機(jī)制事件:用戶對(duì)組件的一個(gè)操作。事件源:發(fā)生事件的組件。監(jiān)聽(tīng)器:我們需要處理某個(gè)事件,就需要在發(fā)生事件的組件上添加監(jiān)聽(tīng)器,也就是java.awt.event包中xxxlistener接口的子類。事件處理器:監(jiān)聽(tīng)器中的方法。監(jiān)聽(tīng)器被添加在組件上之后,組件上發(fā)生了對(duì)應(yīng)事件就會(huì)執(zhí)行指定方法。(5) 常用事件分類窗體事件,windowevent,窗體打開(kāi)、關(guān)閉、正在關(guān)閉、
9、激活、最小化等。鼠標(biāo)事件,mouseevent,鼠標(biāo)按下、抬起、進(jìn)入、移出等。鍵盤事件,keyevent,鍵盤按下、抬起等。動(dòng)作事件,actionevent,在某一組件上發(fā)生了定義好的動(dòng)作,例如按鈕上鼠標(biāo)點(diǎn)擊或按空格,菜單上鼠標(biāo)點(diǎn)擊或按回車等。4.3 io流(1) io流基本概念 io流用來(lái)處理設(shè)備之間的數(shù)據(jù)傳輸 java對(duì)數(shù)據(jù)的操作是通過(guò)流的方式 java用于操作流的對(duì)象都在io包中 流按操作對(duì)象分為兩種:字節(jié)流與字符流。 字節(jié)流可以操作任何數(shù)據(jù),字符流只能操作純字符數(shù)據(jù)比較方便。 流按流向分為:輸入流,輸出流。(2) io流常用基本類 字節(jié)流的抽象基類: inputstream ,outp
10、utstream 字符流的抽象基類: reader , writer 由這四個(gè)類派生出來(lái)的子類名稱都是以其父類名作為子類名的后綴。 如:inputstream的子類fileinputstream。 如:reader的子類filereader。 inputstreamreader是reader的子類(3) 字符流緩沖區(qū)讀寫 java提供了帶緩沖功能的reader和writer類:bufferedreader,bufferedwriter 這兩個(gè)類都是提供包裝功能,需要提供其他流來(lái)使用,給其他流增加緩沖功能 當(dāng)我們調(diào)用bufferedreader讀取數(shù)據(jù)時(shí),程序會(huì)從文件中一次讀取8192個(gè)字符用來(lái)
11、緩沖 當(dāng)我們調(diào)用bufferedwriter寫出數(shù)據(jù)時(shí),程序會(huì)先將數(shù)據(jù)寫出到緩沖數(shù)組,直到寫滿8192個(gè)才一次性刷出到文件(4) io流基本應(yīng)用總結(jié) 流是用來(lái)處理數(shù)據(jù)的。 處理數(shù)據(jù)時(shí),一定要先明確數(shù)據(jù)源,或者數(shù)據(jù)目的地 數(shù)據(jù)源可以是文件,可以是鍵盤或者其他設(shè)備。 數(shù)據(jù)目的地可以是文件、顯示器或者其他設(shè)備。 而流只是在幫助數(shù)據(jù)進(jìn)行傳輸,并對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行處理,比如過(guò)濾處理、轉(zhuǎn)換處理等。5、 程序代碼設(shè)計(jì)(1)界面設(shè)計(jì)創(chuàng)建一個(gè)下拉菜單和文本域,在文本域中顯示編輯的文件信息。主要代碼:private menubar createmenubar() menubar menubar = new menu
12、bar(); / 菜單欄menu menu = new menu(文件); / 菜單menuitem openmenuitem = new menuitem(打開(kāi)); / 菜單項(xiàng)menuitem savemenuitem = new menuitem(保存);menuitem exitmenuitem = new menuitem(退出);menu.add(openmenuitem); / 將菜單項(xiàng)添加到菜單menu.add(savemenuitem);menu.addseparator(); / 給菜單添加分割符menu.add(exitmenuitem);menubar.add(menu)
13、; / 將菜單添加到菜單欄openmenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) open(););savemenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) save(););exitmenuitem.addactionlistener(new actionlistener() public void actionperformed
14、(actionevent e) frame.dispose(););return menubar;(2)功能設(shè)計(jì)對(duì)每個(gè)菜單項(xiàng)進(jìn)行注冊(cè)監(jiān)聽(tīng)。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同界面。主要代碼:private void save() filedialog dialog = new filedialog(frame, 保存, filedialog.save);dialog.setvisible(true);string dir = dialog.getdirectory();string name = dialog.getfile();if (dir != null & name != null) file
15、file = new file(dir, name);savefile(file);/ 將textarea中的文本寫出到file中private void savefile(file file) bufferedwriter writer = null;try writer = new bufferedwriter(new filewriter(file);writer.write(textarea.gettext(); / 獲取textarea中的文本, 寫出 catch (ioexception e) throw new runtimeexception(e); finally if (w
16、riter != null)try writer.close(); catch (ioexception e) e.printstacktrace();private void open() filedialog dialog = new filedialog(frame, 打開(kāi), filedialog.load);dialog.setvisible(true);string dir = dialog.getdirectory(); / 獲取選中的路徑string name = dialog.getfile(); / 獲取選中的文件名if (dir != null & name != null
17、) / 不等于空就代表選擇了一個(gè)文件file file = new file(dir, name); / 將路徑名和文件名封裝成一個(gè)file對(duì)象loadfile(file);/ 定義輸入流, 從文件中讀取文本, 追加到textarea中public void loadfile(file file) bufferedreader reader = null;try reader = new bufferedreader(new filereader(file);stringbuilder sb = new stringbuilder();string line;while (line = rea
18、der.readline() != null)sb.append(line + rn); / 讀取一行向stringbuilder中添加一行textarea.settext(sb.tostring(); / 所有都讀完之后, 一次性添加到textarea catch (ioexception e) throw new runtimeexception(e); finally if (reader != null)try reader.close(); catch (ioexception e) e.printstacktrace();六、系統(tǒng)效果演示java記事本采用的是javase中的gui
19、和io基本技術(shù),主界面如下記事本主界面文件功能點(diǎn)擊文件打開(kāi) 可以瀏覽電腦上的文件當(dāng)選擇一個(gè)txt文件時(shí),確定可以打開(kāi)此文件當(dāng)選擇保存時(shí) 可以保存到指定的 位置七、設(shè)計(jì)體會(huì)經(jīng)過(guò)一個(gè)星期的我的記事本的課程設(shè)計(jì),我在向華萍老師的指導(dǎo)下,順利完成該課程設(shè)計(jì)。通過(guò)該課程設(shè)計(jì),收獲頗多。首先,讓我加深了對(duì)java語(yǔ)言的理論知識(shí)的理解;其次,讓我更加熟練的掌握了java語(yǔ)言的設(shè)計(jì)能力并且有了實(shí)踐經(jīng)驗(yàn);再次,在設(shè)計(jì)過(guò)程中,學(xué)到了老師沒(méi)有在課堂上沒(méi)有教授的知識(shí);最后,加強(qiáng)了我對(duì)java語(yǔ)言的學(xué)習(xí)興趣和好感。參考文獻(xiàn)1 耿詳義,張躍平. java 2 實(shí)用教程. 北京:清華大學(xué)出版社,2004.22 張利國(guó).ja
20、va實(shí)用教程案例.北京:清華大學(xué)出版社,2003.103 周曉聰,等.面向?qū)ο蟪绦蛟O(shè)計(jì)與java語(yǔ)言.北京:機(jī)械工業(yè)出版社,2004.34 李尊朝.java語(yǔ)言程序設(shè)計(jì).北京:中國(guó)鐵道出版社,2004.25 (美)philip heller.complate java 2 certification study guide fourth edition(java 2 證學(xué)習(xí)指南) (第四版 英文版). 北京:電子工業(yè)出版社,2004.1附:程序清單package zhao.fang.notepad;import java.awt.filedialog;import java.awt.frame
21、;import java.awt.menu;import java.awt.menubar;import java.awt.menuitem;import java.awt.textarea;import java.awt.toolkit;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.keyadapter;import java.awt.event.keyevent;import java.awt.event.windowadapter;import ja
22、va.awt.event.windowevent;import java.io.bufferedreader;import java.io.bufferedwriter;import java.io.file;import java.io.filereader;import java.io.filewriter;import java.io.ioexception;public class notepad private frame frame; / 由于類中幾個(gè)方法都要訪問(wèn)這個(gè)frame, 所以定義成成員變量private textarea textarea;public notepad()
23、 frame = createframe(); / 創(chuàng)建窗體menubar menubar = createmenubar(); / 創(chuàng)建菜單欄createtextarea();frame.add(textarea); / 將文本域添加到窗體, 默認(rèn)是borderlayout.center, 鋪滿窗體frame.setmenubar(menubar); / 給窗體設(shè)置菜單欄(一個(gè)窗體只能設(shè)置一個(gè)菜單欄)frame.setvisible(true);private void createtextarea() textarea = new textarea(); / 創(chuàng)建文本域textarea.a
24、ddkeylistener(new keyadapter() public void keypressed(keyevent e) if(e.getkeycode() = keyevent.vk_o & e.iscontroldown()/ 按下了o, 并且按了ctrlopen();if(e.getkeycode() = keyevent.vk_s & e.iscontroldown()/ 按下了s, 并且按了ctrlsave(););private menubar createmenubar() menubar menubar = new menubar(); / 菜單欄menu menu
25、= new menu(文件); / 菜單menuitem openmenuitem = new menuitem(打開(kāi)); / 菜單項(xiàng)menuitem savemenuitem = new menuitem(保存);menuitem exitmenuitem = new menuitem(退出);menu.add(openmenuitem); / 將菜單項(xiàng)添加到菜單menu.add(savemenuitem);menu.addseparator(); / 給菜單添加分割符menu.add(exitmenuitem);menubar.add(menu); / 將菜單添加到菜單欄openmenui
26、tem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) open(););savemenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) save(););exitmenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) frame.
27、dispose(););return menubar;private void save() filedialog dialog = new filedialog(frame, 保存, filedialog.save);dialog.setvisible(true);string dir = dialog.getdirectory();string name = dialog.getfile();if (dir != null & name != null) file file = new file(dir, name);savefile(file);/ 將textarea中的文本寫出到fil
28、e中private void savefile(file file) bufferedwriter writer = null;try writer = new bufferedwriter(new filewriter(file);writer.write(textarea.gettext(); / 獲取textarea中的文本, 寫出 catch (ioexception e) throw new runtimeexception(e); finally if (writer != null)try writer.close(); catch (ioexception e) e.printstacktrace();private void open() filedialog dialog = new filedialog(frame, 打開(kāi), filedialog.load);dialog.setvisible(true);string dir = dialog.getdirectory(); / 獲取選中的路徑string name = dialog.getfile(); / 獲取選中的文件名if (dir != null & name
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)足爽祛臭劑數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)聚異氰酸酯膠數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)啪紐布帶數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)工業(yè)防爆型高壓清洗機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2025年度個(gè)人短期擔(dān)保借款合同范本(十八)
- 二零二五美容院美容院加盟店經(jīng)營(yíng)管理指導(dǎo)合同3篇
- 2025年度住宅小區(qū)電梯智能化升級(jí)改造服務(wù)合同4篇
- 二零二五年度產(chǎn)業(yè)園區(qū)廠房租賃與人才引進(jìn)服務(wù)合同3篇
- 二零二五版農(nóng)家樂(lè)生態(tài)農(nóng)業(yè)觀光園承包協(xié)議3篇
- 2025年度高校實(shí)習(xí)生就業(yè)保障服務(wù)勞動(dòng)合同3篇
- 衛(wèi)生服務(wù)個(gè)人基本信息表
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實(shí)踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語(yǔ)文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 數(shù)列練習(xí)題(含答案)基礎(chǔ)知識(shí)點(diǎn)
- 通用電子嘉賓禮薄
- 赤峰市海業(yè)礦產(chǎn)有限責(zé)任公司福合元礦區(qū)銅鉬礦2022年度礦山地質(zhì)環(huán)境治理與土地復(fù)墾方案
- 充電站監(jiān)理規(guī)劃
評(píng)論
0/150
提交評(píng)論