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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論