版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、java語言課程設計報告題 目:記事本的制作設 計 者: 專業(yè)班級:學 號:指導教師: 2011年 11 月 26 日河南理工大學計算機學院目錄摘要1一、本組課題及程序功能要求2二、系統(tǒng)需求分析22.1 系統(tǒng)名稱22.2 系統(tǒng)介紹32.3 開發(fā)背景3三、系統(tǒng)總體設計33.1系統(tǒng)功能結構圖33.2系統(tǒng)數(shù)據(jù)流程圖3四、系統(tǒng)設計介紹44.1 java語言的基本知識44.2 本程序所用知識點64.3 io流7五、 程序代碼設計9六、系統(tǒng)效果演示12七、設計體會15參考文獻15附:程序清單15 摘要現(xiàn)在網絡上各種記事本軟件數(shù)不勝數(shù),功能也是應有盡有,有能改變字體的,有能改變顏色的。但是,這些軟件又存在各
2、種各樣的瑕疵或問題:有的文件體積相對于一般文字編輯來說太大;有的功能太繁瑣,是初級使用者一時難以掌握,僅從日常應用方面來說,一個記事本只需一些簡單實用的功能就夠了。本程序設計就是依照這樣一種使用需求設計了一個的簡單的記事本程序。該程序報告里的程序是使用java編寫的,實現(xiàn)記事本的功能,參考windows中記事本的功能。要求打開文件,讀取文件中的文本信息。顯示、編輯修改文本信息。java記事本采用的是javase中的gui和io基本技術,可以實現(xiàn)文本的簡單操作,如:打開文檔、編輯文檔、保存文檔等。一、本組課題及程序功能要求課題名稱:java記事本的制作要求:設計一個類似于window記事本的ja
3、va程序,可以基本實現(xiàn)以下功能1) 文件的打開、編輯、保存。2) 對文本的各種編輯操作。3) 執(zhí)行完操作后,能夠順利關閉記事本。二、系統(tǒng)需求分析2.1 系統(tǒng)名稱 java記事本2.2 系統(tǒng)介紹java記事本采用的是javase中的gui和io基本技術,可以實現(xiàn)文本的簡單操作,如:打開文檔、編輯文檔、保存文檔等。具體操作如下:1.點擊文件打開 可以瀏覽電腦上的文件。2.當選擇一個txt文件時,確定可以打開此文件。3.在文檔顯示界面可以輸入文檔對其進行編輯。4.當選擇保存時,可以保存到指定的位置。5.點擊退出功能按鍵可以退出本記事本程序。2.3 開發(fā)背景現(xiàn)在網絡上各種記事本軟件數(shù)不勝數(shù),功能也是應
4、有盡有,有能改變字體的,有能改變顏色的。但是,這些軟件又存在各種各樣的瑕疵或問題:有的文件體積相對于一般文字編輯來說太大;有的功能太繁瑣,是初級使用者一時難以掌握,僅從日常應用方面來說,一個記事本只需一些簡單實用的功能就夠了。本程序設計就是依照這樣一種使用需求設計了一個的簡單的記事本程序。三、系統(tǒng)總體設計打開3.1系統(tǒng)功能結構圖文件保存退出記事本編輯顯示界面文字顯示3.2系統(tǒng)數(shù)據(jù)流程圖文本文檔打開主界面打開編輯文本文檔保存退出四、系統(tǒng)設計介紹4.1 java語言的基本知識(1)java平臺分類javase(java platform standard edition)java平臺標準版,包含那
5、些構成java語言核心的類,可以理解為學習java的基礎javaee(java platform enterpriseedition)java平臺企業(yè)版,包含javase,并且還包含用于開發(fā)企業(yè)級應用的類準確的說javaee是一套用于企業(yè)開發(fā)的技術規(guī)范,包含很多組件,13種核心技術,如:xml、jsp、servlet、jdbc、java mail等javame(java platform micro edition)java平臺微型版,包含javase的一部分,另外提供一些用于小型設備上的類,例如:手機、機頂盒、汽車導航儀java語言的編譯過程如下圖所示:(2) java語言的基本格式所有ja
6、va代碼都應該在一個class中java是嚴格區(qū)分大小寫的java是一種自由格式的語言。java代碼分為結構定義語句和功能執(zhí)行語句,功能執(zhí)行語句最后必須以分號結束。(3)java語言的標識符通用規(guī)范類名、接口名:所有單詞首字母大寫,駝峰式命名,例如:xxxyyyzzz變量名、函數(shù)名:第一個單詞首字母小寫,其他單詞首字母大寫,駝峰式命名,例如:xxxyyyzzz常量名:所有字母都大寫,單詞之間用下劃線分割,例如:xxx_yyy_zzz包名:全部小寫,例如:xxx.yyy.zzz(4) java語言的關鍵字注:java 無sizeof ,goto, const 關鍵字,但不能用goto const
7、作為變量名4.2 本程序所用知識點(1) gui概念gui是graphical user interface的縮寫,圖形化用戶界面(2) 布局管理flowlayout(流式布局管理器)從左到右的順序排列。borderlayout(邊界布局管理器)東,南,西,北,中gridlayout(網格布局管理器)規(guī)則的矩陣cardlayout(卡片布局管理器)選項卡gridbaglayout(網格包布局管理器)非規(guī)則的矩陣 (3) 建立一個窗體窗體中可以存放各種組件,所以窗體是容器container。創(chuàng)建時我們使用的是它的子類container的常用子類有兩個,window和panel。window是我們
8、常用的窗體,panel是用來布局的不可見的。window也有兩個常用子類,frame和dialog。frame是我們常用的帶有標題和邊框的頂層窗口,dialog是對話框。所有awt包中的類都會運行在awt線程上(4) 事件處理事件處理機制事件:用戶對組件的一個操作。事件源:發(fā)生事件的組件。監(jiān)聽器:我們需要處理某個事件,就需要在發(fā)生事件的組件上添加監(jiān)聽器,也就是java.awt.event包中xxxlistener接口的子類。事件處理器:監(jiān)聽器中的方法。監(jiān)聽器被添加在組件上之后,組件上發(fā)生了對應事件就會執(zhí)行指定方法。(5) 常用事件分類窗體事件,windowevent,窗體打開、關閉、正在關閉、
9、激活、最小化等。鼠標事件,mouseevent,鼠標按下、抬起、進入、移出等。鍵盤事件,keyevent,鍵盤按下、抬起等。動作事件,actionevent,在某一組件上發(fā)生了定義好的動作,例如按鈕上鼠標點擊或按空格,菜單上鼠標點擊或按回車等。4.3 io流(1) io流基本概念 io流用來處理設備之間的數(shù)據(jù)傳輸 java對數(shù)據(jù)的操作是通過流的方式 java用于操作流的對象都在io包中 流按操作對象分為兩種:字節(jié)流與字符流。 字節(jié)流可以操作任何數(shù)據(jù),字符流只能操作純字符數(shù)據(jù)比較方便。 流按流向分為:輸入流,輸出流。(2) io流常用基本類 字節(jié)流的抽象基類: inputstream ,outp
10、utstream 字符流的抽象基類: reader , writer 由這四個類派生出來的子類名稱都是以其父類名作為子類名的后綴。 如:inputstream的子類fileinputstream。 如:reader的子類filereader。 inputstreamreader是reader的子類(3) 字符流緩沖區(qū)讀寫 java提供了帶緩沖功能的reader和writer類:bufferedreader,bufferedwriter 這兩個類都是提供包裝功能,需要提供其他流來使用,給其他流增加緩沖功能 當我們調用bufferedreader讀取數(shù)據(jù)時,程序會從文件中一次讀取8192個字符用來
11、緩沖 當我們調用bufferedwriter寫出數(shù)據(jù)時,程序會先將數(shù)據(jù)寫出到緩沖數(shù)組,直到寫滿8192個才一次性刷出到文件(4) io流基本應用總結 流是用來處理數(shù)據(jù)的。 處理數(shù)據(jù)時,一定要先明確數(shù)據(jù)源,或者數(shù)據(jù)目的地 數(shù)據(jù)源可以是文件,可以是鍵盤或者其他設備。 數(shù)據(jù)目的地可以是文件、顯示器或者其他設備。 而流只是在幫助數(shù)據(jù)進行傳輸,并對傳輸?shù)臄?shù)據(jù)進行處理,比如過濾處理、轉換處理等。5、 程序代碼設計(1)界面設計創(chuàng)建一個下拉菜單和文本域,在文本域中顯示編輯的文件信息。主要代碼:private menubar createmenubar() menubar menubar = new menu
12、bar(); / 菜單欄menu menu = new menu(文件); / 菜單menuitem openmenuitem = new menuitem(打開); / 菜單項menuitem savemenuitem = new menuitem(保存);menuitem exitmenuitem = new menuitem(退出);menu.add(openmenuitem); / 將菜單項添加到菜單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)功能設計對每個菜單項進行注冊監(jiān)聽。點擊不同菜單項時,顯示不同界面。主要代碼: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, 打開, filedialog.load);dialog.setvisible(true);string dir = dialog.getdirectory(); / 獲取選中的路徑string name = dialog.getfile(); / 獲取選中的文件名if (dir != null & name != null
17、) / 不等于空就代表選擇了一個文件file file = new file(dir, name); / 將路徑名和文件名封裝成一個file對象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基本技術,主界面如下記事本主界面文件功能點擊文件打開 可以瀏覽電腦上的文件當選擇一個txt文件時,確定可以打開此文件當選擇保存時 可以保存到指定的 位置七、設計體會經過一個星期的我的記事本的課程設計,我在向華萍老師的指導下,順利完成該課程設計。通過該課程設計,收獲頗多。首先,讓我加深了對java語言的理論知識的理解;其次,讓我更加熟練的掌握了java語言的設計能力并且有了實踐經驗;再次,在設計過程中,學到了老師沒有在課堂上沒有教授的知識;最后,加強了我對java語言的學習興趣和好感。參考文獻1 耿詳義,張躍平. java 2 實用教程. 北京:清華大學出版社,2004.22 張利國.ja
20、va實用教程案例.北京:清華大學出版社,2003.103 周曉聰,等.面向對象程序設計與java語言.北京:機械工業(yè)出版社,2004.34 李尊朝.java語言程序設計.北京:中國鐵道出版社,2004.25 (美)philip heller.complate java 2 certification study guide fourth edition(java 2 證學習指南) (第四版 英文版). 北京:電子工業(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; / 由于類中幾個方法都要訪問這個frame, 所以定義成成員變量private textarea textarea;public notepad()
23、 frame = createframe(); / 創(chuàng)建窗體menubar menubar = createmenubar(); / 創(chuàng)建菜單欄createtextarea();frame.add(textarea); / 將文本域添加到窗體, 默認是borderlayout.center, 鋪滿窗體frame.setmenubar(menubar); / 給窗體設置菜單欄(一個窗體只能設置一個菜單欄)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(打開); / 菜單項menuitem savemenuitem = new menuitem(保存);menuitem exitmenuitem = new menuitem(退出);menu.add(openmenuitem); / 將菜單項添加到菜單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, 打開, filedialog.load);dialog.setvisible(true);string dir = dialog.getdirectory(); / 獲取選中的路徑string name = dialog.getfile(); / 獲取選中的文件名if (dir != null & name
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆哈爾濱市第六中學高三年級第二次四校聯(lián)考數(shù)學試題
- 餐飲企業(yè)用工合同范本
- 財政審計造價合同模板
- 補錢協(xié)議書復制
- 腦梗中醫(yī)治療方法
- 新聞傳播學中的新聞素養(yǎng)與媒介批評
- 頸椎病教學課件
- 高風險手術的圍手術期管理
- 《船用眼板》規(guī)范
- 2024-2025學年上海市浦東新區(qū)洋涇中學高三(上)期中數(shù)學試卷
- 公共管理學考研試題及參考答案
- 離子色譜儀883陰離子的操作說明
- 高一家長會英語老師講話稿5篇
- 鉗工生產實習教案鉆孔
- 高二年級期中考試成績分析(課堂PPT)
- 地質圖常用圖例、花紋、符號
- 中學文化地理興趣社章程及考評細則(共5頁)
- 槽鋼表面積對照表
- 稀土發(fā)光材料ppt
- 《白內障》PPT課件.ppt
- 2020年四年級上冊語文素材-全冊課文梳理(1-27課)-人教(部編版)全冊可修改打印
評論
0/150
提交評論