Java課程設(shè)計(jì)報(bào)告-實(shí)現(xiàn)記事本功能_第1頁(yè)
Java課程設(shè)計(jì)報(bào)告-實(shí)現(xiàn)記事本功能_第2頁(yè)
Java課程設(shè)計(jì)報(bào)告-實(shí)現(xiàn)記事本功能_第3頁(yè)
Java課程設(shè)計(jì)報(bào)告-實(shí)現(xiàn)記事本功能_第4頁(yè)
Java課程設(shè)計(jì)報(bào)告-實(shí)現(xiàn)記事本功能_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Java語(yǔ)言程序設(shè)計(jì)報(bào)告實(shí)現(xiàn)記事本功能系別:××××××姓名:×××班級(jí):×××××××××指導(dǎo)老師:×××2011年6月5日目錄一、摘要 3二、關(guān)鍵字: 3三、前言 3四、目的: 3五、要求: 4六、設(shè)計(jì)分析 41.概要設(shè)計(jì) 41.1程序設(shè)計(jì)思路 41.2模塊說(shuō)明圖 41.3程序流程圖 51.4程序相關(guān)說(shuō)明 62.程序詳細(xì)設(shè)計(jì)與分析 72.1.初始化組件 72.2.構(gòu)建菜單欄及其下拉菜單 72.3.“文件〞菜單的事件監(jiān)聽(tīng) 82.4.“編輯〞菜單的事件監(jiān)聽(tīng) 92.5.異常處理 9七、測(cè)試分析 10八、源程序 12九、課程設(shè)計(jì)體會(huì) 17一、摘要本次課程設(shè)計(jì)的題目是用JAVA語(yǔ)言編寫記事本程序,要求是:用圖形界面實(shí)現(xiàn);含有簡(jiǎn)單的文字編輯功能,如:剪切、復(fù)制、粘貼、刪除;還能實(shí)現(xiàn)保存、另存為、查找、替換等功能。本程序主要用到了Javaswing組件和事件監(jiān)聽(tīng)器,還用到了文件的輸入輸出流。記事本的界面參考了Windows中的記事本界面,并且根據(jù)課程設(shè)計(jì)要求做了適當(dāng)?shù)恼{(diào)整。二、關(guān)鍵字:記事本程序;Java語(yǔ)言;MyEclipse三、前言Java的前身是Oak,它一開(kāi)始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來(lái)它的開(kāi)發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語(yǔ)言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來(lái),Java編程語(yǔ)言及平臺(tái)成功地運(yùn)用在網(wǎng)絡(luò)計(jì)算及移動(dòng)等各個(gè)領(lǐng)域。Java的體系結(jié)構(gòu)由Java語(yǔ)言、Javaclass、JavaAPI、Java虛擬機(jī)組成。它具有簡(jiǎn)單、面向?qū)ο?、健壯、平安、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺(tái)標(biāo)準(zhǔn)有JavaME,JavaSE和JavaEE。Java開(kāi)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開(kāi)發(fā)工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中JavaDevelopmentKit簡(jiǎn)稱JDK是大多開(kāi)發(fā)工具的根底。以上的每種開(kāi)發(fā)工具都有優(yōu)缺點(diǎn),對(duì)于開(kāi)發(fā)者來(lái)說(shuō),重要的是要根據(jù)自己的開(kāi)發(fā)規(guī)模、開(kāi)發(fā)內(nèi)容和軟硬件環(huán)境等因素來(lái)選擇一種適宜的開(kāi)發(fā)工具。在本程序設(shè)計(jì)中,因?yàn)樾枰_(kāi)發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的MyEclipse開(kāi)發(fā)工具。四、目的:1〕復(fù)習(xí)、穩(wěn)固Java語(yǔ)言的根底知識(shí),進(jìn)一步加深對(duì)Java語(yǔ)言的理解和掌握;2〕課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的時(shí)機(jī),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生的分析解決實(shí)際問(wèn)題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力;3〕培養(yǎng)學(xué)生在工程開(kāi)發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及能力。五、要求:1、對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;2、系統(tǒng)設(shè)計(jì)要實(shí)用,編程簡(jiǎn)練,可用,功能全面3、記錄設(shè)計(jì)情況〔備查,也為編寫設(shè)計(jì)說(shuō)明書作好準(zhǔn)備〕;4、要求上機(jī)調(diào)試通過(guò)和按設(shè)計(jì)報(bào)告格式。5、功能要求:用圖形用戶界面實(shí)現(xiàn)。6、能實(shí)現(xiàn)編輯、保存、另存為、查找替換等功能。六、設(shè)計(jì)分析1.概要設(shè)計(jì)1.1程序設(shè)計(jì)思路 在本程序中,設(shè)計(jì)了一個(gè)菜單欄和文本內(nèi)容區(qū)。設(shè)計(jì)過(guò)程中用到了JScrollPane,JMenu,MyListener,JFrame等。JMenu用來(lái)制作菜單,菜單包括“文件〞“編輯〞“關(guān)于〞。JTextArea主要用來(lái)輸入文本。1.2模塊說(shuō)明圖implementsActionListenerimplementsActionListenerNotebookNotebookJFrameextendsJFrameextends圖1在圖1中,首先創(chuàng)立一個(gè)名為Notebook的類并繼承JFrame類作為最底層的容器。圖21.3程序流程圖啟動(dòng)程序啟動(dòng)程序輸入文字輸入文字FalseFalse幫助粘貼復(fù)制退出剪切保存翻開(kāi)新建幫助粘貼復(fù)制退出剪切保存翻開(kāi)新建truetruetruetruetruetruetruetruefile=nullfile=nullhelpfile=openfilehelpfile=openfilesavingsavingcontent.pastecontent.pastecontent.copy()System.exit(0)content.copy()System.exit(0)content.cut()content.cut()關(guān)閉或退出程序關(guān)閉或退出程序1.4程序相關(guān)說(shuō)明整個(gè)記事本分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個(gè)Notebook類繼承JFrame作為最底層容器。〔1〕.JScrollPane為程序文本輸入?yún)^(qū)。〔2〕.Menu為菜單欄。〔3〕.要想記事本完成需求分析中相應(yīng)的功能,還必須添加事件監(jiān)聽(tīng)器。事件監(jiān)聽(tīng)器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener實(shí)現(xiàn)了ActionListener接口,用來(lái)監(jiān)聽(tīng)并處理所有菜單項(xiàng)和內(nèi)容輸入?yún)^(qū)為事件源的事件。另外,還用來(lái)WindowListener來(lái)監(jiān)聽(tīng)處理容器關(guān)閉觸發(fā)的事件,WindowListener繼承了WindowsAdapter類并覆蓋了WindowsClosing方法。2.程序詳細(xì)設(shè)計(jì)與分析2.1.構(gòu)建菜單欄及其下拉菜單//設(shè)置菜單分類 JMenumenuFile,menuEdit,menuView,menuHelp; privatevoidsetMenu(){ menuFile=newJMenu("文件(F)",true); menuEdit=newJMenu("編輯(E)",true); menuView=newJMenu("觀察(V)",true); menuHelp=newJMenu("幫助(H)",true); } JMenuItemoptionofmenu[][]=newJMenuItem[][]{{ newJMenuItem("新建"), newJMenuItem("翻開(kāi)"), newJMenuItem("保存"), newJMenuItem("退出") }, { newJMenuItem("復(fù)制"), newJMenuItem("剪切"), newJMenuItem("粘貼"), newJMenuItem("顏色")},{newJMenuItem("關(guān)于")}};2.3.“文件〞菜單的事件監(jiān)聽(tīng)ActionListeneraction=newActionListener(){publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); JMenuItemMI=(JMenuItem)e.getSource(); if("新建".equals(name)){ content.setText(""); file=null; }elseif("翻開(kāi)".equals(name)){if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showOpenDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();unfold();} }elseif("保存".equals(name)){ if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}}elseif("退出".equals(name)){mynotepadf=newmynotepad();ints=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);2.4.“編輯〞菜單的事件監(jiān)聽(tīng)elseif("剪切".equals(name)){content.cut();}elseif("復(fù)制".equals(name)){content.copy();}elseif("粘貼".equals(name)){content.paste();}elseif("顏色".equals(name)){color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);2.5.異常處理在運(yùn)行程序代碼是有可能會(huì)產(chǎn)生異常情況或異常事件,為了防止這種情況,就需要在程序中用到Java異常處理機(jī)制。本程序中選用的異常處理機(jī)制是try,catch。捕獲處理異常的第一步是用try選定要監(jiān)控的異常范圍,try后跟隨catch代碼塊。saving(){try{FileWriterWritef=newFileWriter(file);Writef.write(content.getText());Writef.close();}catch(Exceptione){e.printStackTrace();}}voidunfold(){try{FileReaderReadf=newFileReader(file);intlen=(int)file.length();char[]buffer=newchar[len];Readf.read(buffer,0,len);Readf.close();content.setText(newString(buffer));}catch(Exceptione){e.printStackTrace();}}七、測(cè)試分析圖4:點(diǎn)擊“文件〞運(yùn)行情況圖5:“文件〞菜單中的“翻開(kāi)〞對(duì)話框圖6:翻開(kāi)文件后圖8:“關(guān)于〞對(duì)話框八、源程序importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;classmynotepadextendsJFrame{Filefile=null; Colorcolor=Color.red; mynotepad(){initTextContent();………………//初始化組件 initMenu(); initAboutDialog(); } voidinitTextContent(){ getContentPane().add(newJScrollPane(content));……//滾動(dòng)面板對(duì)象 }JTextPanecontent=newJTextPane();……/創(chuàng)立/內(nèi)容輸入?yún)^(qū)JFileChooseropenfile=newJFileChooser();………………//創(chuàng)立翻開(kāi)文件對(duì)話框JColorChooseropencolor=newJColorChooser();…………//顏色選擇JDialogabout=newJDialog(this);…………//關(guān)于對(duì)話框JMenuBarmenu=newJMenuBar();………//創(chuàng)立菜單欄//菜單欄的各個(gè)菜單項(xiàng) JMenu[]menus=newJMenu[]{ newJMenu("文件"), newJMenu("編輯"), newJMenu("關(guān)于") };//“文件〞菜單項(xiàng)的四個(gè)下拉菜單 JMenuItemoptionofmenu[][]=newJMenuItem[][]{{ newJMenuItem("新建"), newJMenuItem("翻開(kāi)"), newJMenuItem("保存"), newJMenuItem("退出") },//編輯菜單的四個(gè)下拉菜單 { newJMenuItem("復(fù)制"), newJMenuItem("剪切"), newJMenuItem("粘貼"), newJMenuItem("顏色")},{newJMenuItem("關(guān)于")}};voidinitMenu(){ for(inti=0;i<menus.length;i++){ menu.add(menus[i]); for(intj=0;j<optionofmenu[i].length;j++){ menus[i].add(optionofmenu[i][j]); optionofmenu[i][j].addActionListener(action); } } this.setJMenuBar(menu);}ActionListeneraction=newActionListener(){//添加事件監(jiān)聽(tīng)publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); JMenuItemMI=(JMenuItem)e.getSource(); if("新建".equals(name)){……//監(jiān)聽(tīng)“新建〞事件 content.setText(""); file=null; }elseif("翻開(kāi)".equals(name)){………………//監(jiān)聽(tīng)“翻開(kāi)〞事件if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showOpenDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();………………//翻開(kāi)選擇文件unfold();} }elseif("保存".equals(name)){………………//監(jiān)聽(tīng)“保存〞事件 if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}}elseif("退出".equals(name)){mynotepadf=newmynotepad();ints=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);…………//提示用戶是否退出if(s==JOptionPane.YES_OPTION)System.exit(0);}elseif("剪切".equals(name)){………………//監(jiān)聽(tīng)“剪切〞事件content.cut();}elseif("復(fù)制".equals(name)){………………//監(jiān)聽(tīng)“復(fù)制〞事件content.copy();}elseif("粘貼".equals(name)){………………//監(jiān)聽(tīng)“粘貼〞事件content.paste();}elseif("顏色".equals(name)){………………//監(jiān)聽(tīng)“顏色〞事件color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);……………//對(duì)顏色進(jìn)行設(shè)置}elseif("關(guān)于".equals(name)){about.setSize(300,150);…//設(shè)置“關(guān)于〞對(duì)話框大小為300×150about.show();…………//顯示“關(guān)于〞對(duì)話框}}};voidsaving(){try{FileWriterWritef=newFileWriter(file);………………//創(chuàng)立文件寫入器Writef.write(content.getText());Writef.close();}catch(Exceptione){e.printStackTrace();}}voidunfold(){try{FileReaderReadf=newFileReader(file);…………//文件讀入intlen=(int)file.length();char[]buffer=newchar[len];Readf.read(buffer,0,len);Readf.close();content.setText(newString(buffer));}catch(Exceptione){e.printStackTrace();}}voidinitAboutDialog(){about.setLayout(newGridLayout(3,1));……………//將“關(guān)于〞對(duì)話框設(shè)置為3行1列

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論