

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> Java語(yǔ)言程序設(shè)計(jì)報(bào)告</p><p><b> 實(shí)現(xiàn)記事本功能</b></p><p> 系 別: ×××××× </p><p> 姓 名: ××× </p>&
2、lt;p> 班 級(jí): ××××××××× </p><p> 指導(dǎo)老師: ××× </p><p><b> 2011年6月5日</b></p><p><b> 目 錄
3、</b></p><p><b> 一、摘要3</b></p><p><b> 二、關(guān)鍵字:3</b></p><p><b> 三、前言3</b></p><p><b> 四、目的:3</b></p><
4、;p><b> 五、要求:4</b></p><p><b> 六、設(shè)計(jì)分析4</b></p><p><b> 1.概要設(shè)計(jì)4</b></p><p> 1.1程序設(shè)計(jì)思路4</p><p> 1.2模塊說(shuō)明圖4</p><p&g
5、t; 1.3程序流程圖5</p><p> 1.4程序相關(guān)說(shuō)明6</p><p> 2.程序詳細(xì)設(shè)計(jì)與分析7</p><p> 2.1.初始化組件7</p><p> 2.2.構(gòu)建菜單欄及其下拉菜單7</p><p> 2.3.“文件”菜單的事件監(jiān)聽(tīng)8</p><p>
6、 2.4.“編輯”菜單的事件監(jiān)聽(tīng)9</p><p> 2.5.異常處理9</p><p><b> 七、測(cè)試分析10</b></p><p><b> 八、源程序12</b></p><p> 九、課程設(shè)計(jì)體會(huì)17</p><p><b> 一、
7、摘要</b></p><p> 本次課程設(shè)計(jì)的題目是用JAVA語(yǔ)言編寫記事本程序,要求是:用圖形界面實(shí)現(xiàn);含有簡(jiǎn)單的文字編輯功能,如:剪切、復(fù)制、粘貼、刪除;還能實(shí)現(xiàn)保存、另存為、查找、替換等功能。</p><p> 本程序主要用到了Java swing組件和事件監(jiān)聽(tīng)器,還用到了文件的輸入輸出流。記事本的界面參考了Windows中的記事本界面,并且根據(jù)課程設(shè)計(jì)要求做了適當(dāng)?shù)?/p>
8、調(diào)整。</p><p><b> 二、關(guān)鍵字:</b></p><p> 記事本程序;Java語(yǔ)言;MyEclipse</p><p><b> 三、前言</b></p><p> Java的前身是Oak,它一開(kāi)始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來(lái)它的開(kāi)發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的In
9、ternet上。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ǔ)言、Java class、Java API、Java虛擬機(jī)組成。它具有簡(jiǎn)單、面向?qū)ο?、健壯、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時(shí)系統(tǒng)在多線程同步
10、方面具有成熟的解決方案。Java的平臺(tái)標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開(kāi)發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡(jiǎn)稱JDK是大多開(kāi)發(fā)工具的基礎(chǔ)。以上的每種開(kāi)發(fā)工具都有優(yōu)缺點(diǎn),對(duì)
11、于開(kāi)發(fā)者來(lái)</p><p> 在本程序設(shè)計(jì)中,因?yàn)樾枰_(kāi)發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的MyEclipse開(kāi)發(fā)工具。</p><p><b> 四、目的:</b></p><p> 1)復(fù)習(xí)、鞏固Java語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)Java語(yǔ)言的理解和掌握;</p><p> 2)
12、課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論 知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生的分析解決實(shí)際問(wèn)題的能力。提高學(xué)生適 應(yīng)實(shí)際,實(shí)踐編程的能力;</p><p> 3)培養(yǎng)學(xué)生在項(xiàng)目開(kāi)發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及能力。</p><p><b> 五、要求:</b></p><
13、;p> 1、對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;</p><p> 2、系統(tǒng)設(shè)計(jì)要實(shí)用,編程簡(jiǎn)練,可用,功能全面</p><p> 3、記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說(shuō)明書作好準(zhǔn)備);</p><p> 4、要求上機(jī)調(diào)試通過(guò)和按設(shè)計(jì)報(bào)告格式。</p><
14、;p> 5、功能要求:用圖形用戶界面實(shí)現(xiàn)。</p><p> 6、能實(shí)現(xiàn)編輯、保存、另存為、查找替換等功能。</p><p><b> 六、設(shè)計(jì)分析</b></p><p><b> 1.概要設(shè)計(jì)</b></p><p><b> 1.1程序設(shè)計(jì)思路</b>&l
15、t;/p><p> 在本程序中,設(shè)計(jì)了一個(gè)菜單欄和文本內(nèi)容區(qū)。設(shè)計(jì)過(guò)程中用到了JScrollPane,JMenu,MyListener,JFrame等。JMenu用來(lái)制作菜單,菜單包括“文件”“編輯”“關(guān)于”。 JTextArea主要用來(lái)輸入文本。</p><p><b> 1.2模塊說(shuō)明圖</b></p><p><b> 圖1&
16、lt;/b></p><p> 在圖1中,首先創(chuàng)建一個(gè)名為Notebook的類并繼承JFrame類作為最底層的容器。</p><p> 圖2 </p><p><b> 1.3程序流程圖</b></p><p> False
17、 False </p><p> true true true true true true true true</p><p><b> 1.4程序相關(guān)說(shuō)明</b></p><p> 整個(gè)記事本分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個(gè)Notebook類繼
18、承JFrame作為最底層容器。</p><p> ?。?).JScrollPane為程序文本輸入?yún)^(qū)。</p><p> ?。?).Menu為菜單欄。</p><p> ?。?).要想記事本完成需求分析中相應(yīng)的功能,還必須添加事件監(jiān)聽(tīng)器。事件監(jiān)聽(tīng)器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener實(shí)現(xiàn)了ActionListener接口,用來(lái)
19、監(jiān)聽(tīng)并處理所有菜單項(xiàng)和內(nèi)容輸入?yún)^(qū)為事件源的事件。</p><p> 另外,還用來(lái)WindowListener來(lái)監(jiān)聽(tīng)處理容器關(guān)閉觸發(fā)的事件,WindowListener繼承了WindowsAdapter類并覆蓋了WindowsClosing方法。</p><p> 2.程序詳細(xì)設(shè)計(jì)與分析</p><p> 2.1.構(gòu)建菜單欄及其下拉菜單</p>&
20、lt;p><b> // 設(shè)置菜單分類</b></p><p> JMenu menuFile, menuEdit, menuView, menuHelp;</p><p> private void setMenu() {</p><p> menuFile = new JMenu("文件(F)", true
21、);</p><p> menuEdit = new JMenu("編輯(E)", true);</p><p> menuView = new JMenu("察看(V)", true);</p><p> menuHelp = new JMenu("幫助(H)", true);</p>
22、<p><b> }</b></p><p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p> new JMenuItem("新建"),</p><p> new JMenuItem("打開(kāi)"),</p>&
23、lt;p> new JMenuItem("保存"),</p><p> new JMenuItem("退出")</p><p><b> },</b></p><p><b> {</b></p><p> new JMenuItem(&quo
24、t;復(fù)制"), </p><p> new JMenuItem("剪切"),</p><p> new JMenuItem("粘貼"),</p><p> new JMenuItem("顏色")</p><p><b> },</b&
25、gt;</p><p><b> {</b></p><p> new JMenuItem("關(guān)于")</p><p><b> }</b></p><p><b> };</b></p><p> 2.3.“文件”菜單的事
26、件監(jiān)聽(tīng)</p><p> ActionListener action=new ActionListener(){ </p><p> public void actionPerformed(ActionEvent e){</p><p> String name = e.getActionCommand();</p&g
27、t;<p> JMenuItem MI=(JMenuItem)e.getSource();</p><p> if("新建".equals(name)){</p><p> content.setText("");</p><p> file=null;</p><p> }el
28、se if("打開(kāi)".equals(name)){</p><p> if(file !=null)openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showOpenDialog(mynotepad.this);</p><p> if(returnVal==JF
29、ileChooser.APPROVE_OPTION){</p><p> file=openfile.getSelectedFile();</p><p><b> unfold();</b></p><p><b> }</b></p><p> }else if("保存&quo
30、t;.equals(name)){</p><p> if(file!=null) openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showSaveDialog(mynotepad.this);</p><p> if(returnVal==JFileChooser.APPROVE
31、_OPTION){</p><p> file=openfile.getSelectedFile();</p><p><b> saving();</b></p><p><b> }</b></p><p> }else if("退出".equals(name)){&
32、lt;/p><p> mynotepad f=new mynotepad();</p><p> int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);</p><p> 2.4.“編輯”菜單的事件監(jiān)聽(tīng)</p>&
33、lt;p> else if("剪切".equals(name)){</p><p> content.cut();</p><p> }else if("復(fù)制".equals(name)){</p><p> content.copy();</p><p> }else if("
34、;粘貼".equals(name)){</p><p> content.paste();</p><p> }else if("顏色".equals(name)){</p><p> color=JColorChooser.showDialog(mynotepad.this,"",color);</p&
35、gt;<p> content.setForeground(color); </p><p><b> 2.5.異常處理</b></p><p> 在運(yùn)行程序代碼是有可能會(huì)產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機(jī)制。本程序中選用的異常處理機(jī)制是try,catch。捕獲處理異常的第一步是用try選定要監(jiān)控的異常范
36、圍,try后跟隨catch代碼塊。</p><p><b> saving(){</b></p><p><b> try{</b></p><p> FileWriter Writef=new FileWriter(file);</p><p> Writef.write(content.
37、getText());</p><p> Writef.close();</p><p><b> }</b></p><p> catch(Exception e){e.printStackTrace();}</p><p> } </p><p> vo
38、id unfold(){</p><p><b> try{</b></p><p> FileReader Readf=new FileReader(file);</p><p> int len=(int)file.length();</p><p> char []buffer=new char[len];
39、</p><p> Readf.read(buffer,0,len);</p><p> Readf.close();</p><p> content.setText(new String(buffer));</p><p> }catch(Exception e){e.printStackTrace();}</p>
40、<p><b> }</b></p><p><b> 七、測(cè)試分析</b></p><p> 圖4:點(diǎn)擊“文件”運(yùn)行情況</p><p> 圖5:“文件”菜單中的“打開(kāi)”對(duì)話框</p><p><b> 圖6:打開(kāi)文件后</b></p>&l
41、t;p> 圖8:“關(guān)于”對(duì)話框</p><p><b> 八、源程序</b></p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p>
42、 import java.io.*;</p><p> class mynotepad extends JFrame{</p><p> File file=null;</p><p> Color color=Color.red;</p><p> mynotepad(){</p><p> initTex
43、tContent();………………………………………………//初始化組件</p><p> initMenu();</p><p> initAboutDialog();</p><p><b> }</b></p><p> void initTextContent(){</p><p>
44、; getContentPane().add(new JScrollPane(content)); ……//滾動(dòng)面板對(duì)象</p><p><b> }</b></p><p> JTextPane content=new JTextPane(); ……………………/創(chuàng)建/內(nèi)容輸入?yún)^(qū)</p><p> JFileChooser openf
45、ile=new JFileChooser();………………//創(chuàng)建打開(kāi)文件對(duì)話框</p><p> JColorChooser opencolor=new JColorChooser();…………//顏色選擇</p><p> JDialog about=new JDialog(this);…………………………//關(guān)于對(duì)話框</p><p> JMenuBar
46、 menu=new JMenuBar();………………………//創(chuàng)建菜單欄</p><p> //菜單欄的各個(gè)菜單項(xiàng)</p><p> JMenu[] menus=new JMenu[]{</p><p> new JMenu("文件"),</p><p> new JMenu("編輯"),&l
47、t;/p><p> new JMenu("關(guān)于")</p><p><b> };</b></p><p> //“文件”菜單項(xiàng)的四個(gè)下拉菜單</p><p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p>
48、 new JMenuItem("新建"),</p><p> new JMenuItem("打開(kāi)"),</p><p> new JMenuItem("保存"),</p><p> new JMenuItem("退出")</p><p><b>
49、 },</b></p><p> //編輯菜單的四個(gè)下拉菜單 </p><p><b> {</b></p><p> new JMenuItem("復(fù)制"), </p><p> new JMenuItem("剪切"),<
50、/p><p> new JMenuItem("粘貼"),</p><p> new JMenuItem("顏色")</p><p><b> },</b></p><p><b> {</b></p><p> new JMenu
51、Item("關(guān)于")</p><p><b> }</b></p><p><b> };</b></p><p> void initMenu(){</p><p> for(int i=0;i<menus.length;i++){</p><
52、p> menu.add(menus[i]);</p><p> for(int j=0;j<optionofmenu[i].length;j++){</p><p> menus[i].add(optionofmenu[i][j]);</p><p> optionofmenu[i][j].addActionListener( action );
53、</p><p><b> }</b></p><p><b> }</b></p><p> this.setJMenuBar(menu);</p><p><b> } </b></p><p> ActionListener action
54、=new ActionListener(){ //添加事件監(jiān)聽(tīng)</p><p> public void actionPerformed(ActionEvent e){</p><p> String name = e.getActionCommand();</p><p> JMenuItem MI=(JMenuItem)
55、e.getSource();</p><p> if("新建".equals(name)){……………………………………//監(jiān)聽(tīng)“新建”事件</p><p> content.setText("");</p><p> file=null;</p><p> }else if("打開(kāi)&
56、quot;.equals(name)){………………………………//監(jiān)聽(tīng)“打開(kāi)”事件</p><p> if(file !=null)openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showOpenDialog(mynotepad.this);</p><p> if(return
57、Val==JFileChooser.APPROVE_OPTION){</p><p> file=openfile.getSelectedFile();………………//打開(kāi)選擇文件</p><p><b> unfold();</b></p><p><b> }</b></p><p>
58、}else if("保存".equals(name)){………………………………//監(jiān)聽(tīng)“保存”事件</p><p> if(file!=null) openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showSaveDialog(mynotepad.this);</p>&l
59、t;p> if(returnVal==JFileChooser.APPROVE_OPTION){</p><p> file=openfile.getSelectedFile();</p><p><b> saving();</b></p><p><b> }</b></p><p&g
60、t; }else if("退出".equals(name)){</p><p> mynotepad f=new mynotepad();</p><p> int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);……………………
61、……//提示用戶是否退出</p><p> if(s==JOptionPane.YES_OPTION)</p><p> System.exit(0);</p><p> }else if("剪切".equals(name)){………………………………//監(jiān)聽(tīng)“剪切”事件</p><p> content.cut(
62、);</p><p> }else if("復(fù)制".equals(name)){ ………………………………//監(jiān)聽(tīng)“復(fù)制”事件</p><p> content.copy();</p><p> }else if("粘貼".equals(name)){ ………………………………//監(jiān)聽(tīng)“粘貼”事件</p>
63、<p> content.paste();</p><p> }else if("顏色".equals(name)){ ………………………………//監(jiān)聽(tīng)“顏色”事件</p><p> color=JColorChooser.showDialog(mynotepad.this,"",color);</p><p>
64、; content.setForeground(color); ……………………………//對(duì)顏色進(jìn)行設(shè)置</p><p> }else if("關(guān)于".equals(name)){</p><p> about.setSize(300,150);…………………//設(shè)置“關(guān)于”對(duì)話框大小為300×150</p><p> abou
65、t.show();…………………………//顯示“關(guān)于”對(duì)話框</p><p><b> }</b></p><p><b> } </b></p><p><b> }; </b></p><p> void saving(){</p><p>
66、<b> try{</b></p><p> FileWriter Writef=new FileWriter(file);………………//創(chuàng)建文件寫入器</p><p> Writef.write(content.getText());</p><p> Writef.close();</p><p><
67、b> }</b></p><p> catch(Exception e){e.printStackTrace();}</p><p> } </p><p> void unfold(){</p><p><b> try{</b></p><
68、p> FileReader Readf=new FileReader(file);…………//文件讀入</p><p> int len=(int)file.length();</p><p> char []buffer=new char[len];</p><p> Readf.read(buffer,0,len);</p><
69、p> Readf.close();</p><p> content.setText(new String(buffer));</p><p> }catch(Exception e){e.printStackTrace();}</p><p><b> }</b></p><p> void initA
70、boutDialog(){</p><p> about.setLayout(new GridLayout(3,1));……………//將“關(guān)于”對(duì)話框設(shè)置為3行1列</p><p> about.getContentPane().setBackground(Color.white);//設(shè)置對(duì)話框背景色</p><p> about.getContentPan
71、e().add(new JLabel("我的記事本程序"));//對(duì)話框內(nèi)容</p><p> about.getContentPane().add(new JLabel("制作者:LYF"));</p><p> about.getContentPane().add(new JLabel("2010年1月"));</p
72、><p> about.setModal(true); //設(shè)置對(duì)話框前端顯示</p><p> about.setSize(100,100); </p><p> about.setLocation(250,170); //設(shè)置對(duì)話框顯示
73、位置</p><p><b> }</b></p><p><b> ;</b></p><p><b> } </b></p><p> public class Notepad{</p><p> public static void
74、main(String args[]){ //入口main函數(shù)</p><p> mynotepad noted=new mynotepad();</p><p> noted.addWindowListener(new WindowAdapter(){</p><p><b> });</b&
75、gt;</p><p> noted.setTitle("我的記事本程序"); //記事本標(biāo)題</p><p> noted.setSize(640,320); //設(shè)置記事本大小</p><p> noted.show(); </p
76、><p> noted.setLocation(150,100); //設(shè)置記事本顯示位置</p><p><b> }</b></p><p><b> }</b></p><p><b> 九、課程設(shè)計(jì)體會(huì)</b></p><
77、;p> 經(jīng)過(guò)努力,基本上完成我的Java課程設(shè)計(jì)—簡(jiǎn)單的記事本程序,也基本上實(shí)現(xiàn)了老師需求分析時(shí)所預(yù)期的功能。通過(guò)這次的課程設(shè)計(jì),使將我從書本上學(xué)習(xí)到的理論知識(shí)用到了實(shí)踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過(guò)的知識(shí),讓我更深層次地認(rèn)識(shí)到Java及其強(qiáng)大的功能。同時(shí),做這門課程設(shè)計(jì)也進(jìn)一步加強(qiáng)了我的動(dòng)手能力。為了完成好這次課程設(shè)計(jì),我一邊上網(wǎng)查找相關(guān)資料,另一方面查閱相關(guān)書籍。在這過(guò)程中也無(wú)形中鍛煉了我的思維分析、遇到問(wèn)題及想方設(shè)法通
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java記事本程序課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--日歷記事本
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)論文
- java記事本課程設(shè)計(jì)報(bào)告
- java記事本課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)記事本(含代碼)1
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)---設(shè)計(jì)一個(gè)記事本
- java語(yǔ)言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- java課程設(shè)計(jì)--簡(jiǎn)單記事本程序的設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- java課程設(shè)計(jì)---基于java的記事本軟件設(shè)計(jì)
- java課程設(shè)計(jì)--編寫一個(gè)記事本程序
評(píng)論
0/150
提交評(píng)論