版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.Java語言程序設(shè)計(jì)報(bào)告實(shí)現(xiàn)記事本功能系 別: ×××××× 姓 名: ××× 班 級(jí): ××××××××× 指導(dǎo)老師: ××× 201年月日 目 錄一、摘要3二、關(guān)鍵字:3三、前言3四、目的:3五、要求:4六、設(shè)計(jì)分析41.概要設(shè)計(jì)41.1程序設(shè)計(jì)思路41.2模塊說明圖41.3程序流程圖51.4程序相關(guān)說明62.程序詳細(xì)設(shè)計(jì)與分析72.1.初始化組件72.2.構(gòu)建菜單欄及其下拉菜單7
2、2.3.“文件”菜單的事件監(jiān)聽82.4.“編輯”菜單的事件監(jiān)聽92.5.異常處理9七、測(cè)試分析10八、源程序12九、課程設(shè)計(jì)體會(huì)17一、摘要 本次課程設(shè)計(jì)的題目是用JAVA語言編寫記事本程序,要求是:用圖形界面實(shí)現(xiàn);含有簡單的文字編輯功能,如:剪切、復(fù)制、粘貼、刪除;還能實(shí)現(xiàn)保存、另存為、查找、替換等功能。本程序主要用到了Java swing組件和事件監(jiān)聽器,還用到了文件的輸入輸出流。記事本的界面參考了Windows中的記事本界面,并且根據(jù)課程設(shè)計(jì)要求做了適當(dāng)?shù)恼{(diào)整。二、關(guān)鍵字: 記事本程序;Java語言;MyEclipse三、前言 Java的前身是Oak,它一開始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中
3、。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺(tái)成功地運(yùn)用在網(wǎng)絡(luò)計(jì)算及移動(dòng)等各個(gè)領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機(jī)組成。它具有簡單、面向?qū)ο?、健壯、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺(tái)標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天
4、,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點(diǎn),對(duì)于開發(fā)者來說,重要的是要根據(jù)自己的開發(fā)規(guī)模、開發(fā)內(nèi)容和軟硬件環(huán)境等因素來選擇一種合適的開發(fā)工具。在本程序設(shè)計(jì)中,因?yàn)樾枰_發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的MyEclipse開發(fā)工具。四、目的:1)復(fù)習(xí)、鞏固Java語言的基礎(chǔ)知識(shí),進(jìn)一步加
5、深對(duì)Java語言的理解和掌握;2)課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論 知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生適 應(yīng)實(shí)際,實(shí)踐編程的能力;3)培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及能力。五、要求:1、對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;2、系統(tǒng)設(shè)計(jì)要實(shí)用,編程簡練,可用,功能全面3、記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備);4、要求上機(jī)調(diào)試通過和按設(shè)計(jì)報(bào)告格式。 5、功能要求:用圖形用戶界面實(shí)現(xiàn)。 6、能實(shí)現(xiàn)編輯、保存、另存為、查找替換等功
6、能。 六、設(shè)計(jì)分析1.概要設(shè)計(jì)1.1程序設(shè)計(jì)思路 在本程序中,設(shè)計(jì)了一個(gè)菜單欄和文本內(nèi)容區(qū)。設(shè)計(jì)過程中用到了JScrollPane,JMenu,MyListener,JFrame等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關(guān)于”。 JTextArea主要用來輸入文本。1.2模塊說明圖implementsActionListenerNotebookJFrameextends 圖1在圖1中,首先創(chuàng)建一個(gè)名為Notebook的類并繼承JFrame類作為最底層的容器。 圖2 1.3程序流程圖啟動(dòng)程序輸入文字 False False 幫助粘貼復(fù)制退出剪切保存打開新建 true true tru
7、e true true true true truefile=nullhelpfile=openfilesavingcontent.pastecontent.copy()System.exit(0)content.cut()關(guān)閉或退出程序1.4程序相關(guān)說明整個(gè)記事本分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個(gè)Notebook類繼承JFrame作為最底層容器。 (1).JScrollPane為程序文本輸入?yún)^(qū)。 (2).Menu為菜單欄。 (3).要想記事本完成需求分析中相應(yīng)的功能,還必須添加事件監(jiān)聽器。事件監(jiān)聽器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener
8、實(shí)現(xiàn)了ActionListener接口,用來監(jiān)聽并處理所有菜單項(xiàng)和內(nèi)容輸入?yún)^(qū)為事件源的事件。 另外,還用來WindowListener來監(jiān)聽處理容器關(guān)閉觸發(fā)的事件,WindowListener繼承了WindowsAdapter類并覆蓋了WindowsClosing方法。2.程序詳細(xì)設(shè)計(jì)與分析2.1.構(gòu)建菜單欄及其下拉菜單/ 設(shè)置菜單分類JMenu menuFile, menuEdit, menuView, menuHelp;private void setMenu() menuFile = new JMenu("文件(F)", true);menuEdit = new JM
9、enu("編輯(E)", true);menuView = new JMenu("察看(V)", true);menuHelp = new JMenu("幫助(H)", true);JMenuItem optionofmenu=new JMenuItemnew JMenuItem("新建"),new JMenuItem("打開"),new JMenuItem("保存"),new JMenuItem("退出") , new JMenuItem("復(fù)
10、制"), new JMenuItem("剪切"),new JMenuItem("粘貼"),new JMenuItem("顏色") , new JMenuItem("關(guān)于") ;2.3.“文件”菜單的事件監(jiān)聽ActionListener action=new ActionListener() public void actionPerformed(ActionEvent e) String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSo
11、urce();if("新建".equals(name)content.setText("");file=null;else if("打開".equals(name) if(file !=null)openfile.setSelectedFile(file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); unfold();
12、else if("保存".equals(name) if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); saving(); else if("退出".equals(name) mynotepad f=new mynotepad(); int s=JOptio
13、nPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);2.4.“編輯”菜單的事件監(jiān)聽else if("剪切".equals(name) content.cut(); else if("復(fù)制".equals(name) content.copy(); else if("粘貼".equals(name) content.paste(); else if("顏色".equals(name) color=JCo
14、lorChooser.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 FileWriter Writef=new FileWriter(file); Writef.write(content.getText(); W
15、ritef.close(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); 七、測(cè)試分析圖4:點(diǎn)擊“文件”運(yùn)行情況
16、圖5:“文件”菜單中的“打開”對(duì)話框圖6:打開文件后圖8:“關(guān)于”對(duì)話框八、源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;class mynotepad extends JFrame File file=null; Color color=Color.red; mynotepad() initTextContent();/初始化組件 initMenu(); initAboutDialog(); void initTextContent() getContentPane().a
17、dd(new JScrollPane(content); /滾動(dòng)面板對(duì)象 JTextPane content=new JTextPane(); /創(chuàng)建/內(nèi)容輸入?yún)^(qū) JFileChooser openfile=new JFileChooser();/創(chuàng)建打開文件對(duì)話框 JColorChooser opencolor=new JColorChooser();/顏色選擇 JDialog about=new JDialog(this);/關(guān)于對(duì)話框 JMenuBar menu=new JMenuBar();/創(chuàng)建菜單欄 /菜單欄的各個(gè)菜單項(xiàng)JMenu menus=new JMenunew JMenu(
18、"文件"),new JMenu("編輯"),new JMenu("關(guān)于"); /“文件”菜單項(xiàng)的四個(gè)下拉菜單JMenuItem optionofmenu=new JMenuItemnew JMenuItem("新建"),new JMenuItem("打開"),new JMenuItem("保存"),new JMenuItem("退出") , /編輯菜單的四個(gè)下拉菜單 new JMenuItem("復(fù)制"), new JMenuItem(
19、"剪切"),new JMenuItem("粘貼"),new JMenuItem("顏色") , new JMenuItem("關(guān)于") ; void initMenu() for(int i=0;i<menus.length;i+) menu.add(menusi); for(int j=0;j<optionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener( action ); this.set
20、JMenuBar(menu); ActionListener action=new ActionListener() /添加事件監(jiān)聽 public void actionPerformed(ActionEvent e) String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if("新建".equals(name)/監(jiān)聽“新建”事件content.setText("");file=null;else if("打開".equals(name)/監(jiān)聽
21、“打開”事件 if(file !=null)openfile.setSelectedFile(file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile();/打開選擇文件 unfold(); else if("保存".equals(name)/監(jiān)聽“保存”事件 if(file!=null) openfile.setSelectedFile(file); int ret
22、urnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); saving(); else if("退出".equals(name) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);/提示用戶是
23、否退出 if(s=JOptionPane.YES_OPTION) System.exit(0); else if("剪切".equals(name)/監(jiān)聽“剪切”事件 content.cut(); else if("復(fù)制".equals(name) /監(jiān)聽“復(fù)制”事件 content.copy(); else if("粘貼".equals(name) /監(jiān)聽“粘貼”事件 content.paste(); else if("顏色".equals(name) /監(jiān)聽“顏色”事件 color=JColorChooser.
24、showDialog(mynotepad.this,"",color); content.setForeground(color); /對(duì)顏色進(jìn)行設(shè)置 else if("關(guān)于".equals(name) about.setSize(300,150);/設(shè)置“關(guān)于”對(duì)話框大小為300×150 about.show();/顯示“關(guān)于”對(duì)話框 ; void saving() try FileWriter Writef=new FileWriter(file);/創(chuàng)建文件寫入器 Writef.write(content.getText(); Write
25、f.close(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file);/文件讀入 int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); void initAboutDialog() about.setLayout(new GridLayout(3,1);/將“關(guān)于”對(duì)話框設(shè)置為3行1列 about.getContentPane().setBack
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度網(wǎng)絡(luò)安全服務(wù)協(xié)議書
- 2024年度版權(quán)使用與授權(quán)合同
- 2024供水、供電合同范文
- 2024年建筑工程股權(quán)轉(zhuǎn)讓合同樣本
- 2024城市軌道交通安檢設(shè)備采購合同
- 文書模板-產(chǎn)品委外開發(fā)合作協(xié)議書
- 產(chǎn)業(yè)新城課件教學(xué)課件
- 2024年度企業(yè)品牌形象設(shè)計(jì)及VI手冊(cè)整編合同
- 2024年度版權(quán)購買與授權(quán)合同具體內(nèi)容
- 2024年廢物回收居間買賣合同
- 外貿(mào)業(yè)務(wù)與國際市場(chǎng)培訓(xùn)課件
- 信創(chuàng)醫(yī)療工作總結(jié)
- 教師教育教學(xué)質(zhì)量提升方案
- 滅火器的規(guī)格與使用培訓(xùn)
- 2024《中央企業(yè)安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)方案(2024-2026年)》
- 紀(jì)錄片《園林》解說詞
- 建筑專題攝影培訓(xùn)課件
- 《民間文學(xué)導(dǎo)論》課件
- 《輸血查對(duì)制度》課件
- 拳擊賽策劃方案
- 分離性障礙教學(xué)演示課件
評(píng)論
0/150
提交評(píng)論