版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> Java語言程序設(shè)計報告</p><p><b> 實現(xiàn)記事本功能</b></p><p> 系 別: ×××××× </p><p> 姓 名: ××× </p>&
2、lt;p> 班 級: ××××××××× </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è)計分析4</b></p><p><b> 1.概要設(shè)計4</b></p><p> 1.1程序設(shè)計思路4</p><p> 1.2模塊說明圖4</p><p&g
5、t; 1.3程序流程圖5</p><p> 1.4程序相關(guān)說明6</p><p> 2.程序詳細(xì)設(shè)計與分析7</p><p> 2.1.初始化組件7</p><p> 2.2.構(gòu)建菜單欄及其下拉菜單7</p><p> 2.3.“文件”菜單的事件監(jiān)聽8</p><p>
6、 2.4.“編輯”菜單的事件監(jiān)聽9</p><p> 2.5.異常處理9</p><p><b> 七、測試分析10</b></p><p><b> 八、源程序12</b></p><p> 九、課程設(shè)計體會17</p><p><b> 一、
7、摘要</b></p><p> 本次課程設(shè)計的題目是用JAVA語言編寫記事本程序,要求是:用圖形界面實現(xiàn);含有簡單的文字編輯功能,如:剪切、復(fù)制、粘貼、刪除;還能實現(xiàn)保存、另存為、查找、替換等功能。</p><p> 本程序主要用到了Java swing組件和事件監(jiān)聽器,還用到了文件的輸入輸出流。記事本的界面參考了Windows中的記事本界面,并且根據(jù)課程設(shè)計要求做了適當(dāng)?shù)?/p>
8、調(diào)整。</p><p><b> 二、關(guān)鍵字:</b></p><p> 記事本程序;Java語言;MyEclipse</p><p><b> 三、前言</b></p><p> Java的前身是Oak,它一開始只是被應(yīng)用于消費性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的In
9、ternet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺成功地運用在網(wǎng)絡(luò)計算及移動等各個領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機組成。它具有簡單、面向?qū)ο?、健壯、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點。Java支持多線程編程,Java運行時系統(tǒng)在多線程同步
10、方面具有成熟的解決方案。Java的平臺標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點,對
11、于開發(fā)者來</p><p> 在本程序設(shè)計中,因為需要開發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的MyEclipse開發(fā)工具。</p><p><b> 四、目的:</b></p><p> 1)復(fù)習(xí)、鞏固Java語言的基礎(chǔ)知識,進(jìn)一步加深對Java語言的理解和掌握;</p><p> 2)
12、課程設(shè)計為學(xué)生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論 知識和實際有機的結(jié)合起來,鍛煉學(xué)生的分析解決實際問題的能力。提高學(xué)生適 應(yīng)實際,實踐編程的能力;</p><p> 3)培養(yǎng)學(xué)生在項目開發(fā)中團(tuán)隊合作精神、創(chuàng)新意識及能力。</p><p><b> 五、要求:</b></p><
13、;p> 1、對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;</p><p> 2、系統(tǒng)設(shè)計要實用,編程簡練,可用,功能全面</p><p> 3、記錄設(shè)計情況(備查,也為編寫設(shè)計說明書作好準(zhǔn)備);</p><p> 4、要求上機調(diào)試通過和按設(shè)計報告格式。</p><
14、;p> 5、功能要求:用圖形用戶界面實現(xiàn)。</p><p> 6、能實現(xiàn)編輯、保存、另存為、查找替換等功能。</p><p><b> 六、設(shè)計分析</b></p><p><b> 1.概要設(shè)計</b></p><p><b> 1.1程序設(shè)計思路</b>&l
15、t;/p><p> 在本程序中,設(shè)計了一個菜單欄和文本內(nèi)容區(qū)。設(shè)計過程中用到了JScrollPane,JMenu,MyListener,JFrame等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關(guān)于”。 JTextArea主要用來輸入文本。</p><p><b> 1.2模塊說明圖</b></p><p><b> 圖1&
16、lt;/b></p><p> 在圖1中,首先創(chuàng)建一個名為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)說明</b></p><p> 整個記事本分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個Notebook類繼
18、承JFrame作為最底層容器。</p><p> ?。?).JScrollPane為程序文本輸入?yún)^(qū)。</p><p> ?。?).Menu為菜單欄。</p><p> (3).要想記事本完成需求分析中相應(yīng)的功能,還必須添加事件監(jiān)聽器。事件監(jiān)聽器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener實現(xiàn)了ActionListener接口,用來
19、監(jiān)聽并處理所有菜單項和內(nèi)容輸入?yún)^(qū)為事件源的事件。</p><p> 另外,還用來WindowListener來監(jiān)聽處理容器關(guān)閉觸發(fā)的事件,WindowListener繼承了WindowsAdapter類并覆蓋了WindowsClosing方法。</p><p> 2.程序詳細(xì)設(shè)計與分析</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("打開"),</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)聽</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("打開".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)聽</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> 在運行程序代碼是有可能會產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機制。本程序中選用的異常處理機制是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> 七、測試分析</b></p><p> 圖4:點擊“文件”運行情況</p><p> 圖5:“文件”菜單中的“打開”對話框</p><p><b> 圖6:打開文件后</b></p>&l
41、t;p> 圖8:“關(guān)于”對話框</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)); ……//滾動面板對象</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)建打開文件對話框</p><p> JColorChooser opencolor=new JColorChooser();…………//顏色選擇</p><p> JDialog about=new JDialog(this);…………………………//關(guān)于對話框</p><p> JMenuBar
46、 menu=new JMenuBar();………………………//創(chuàng)建菜單欄</p><p> //菜單欄的各個菜單項</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> //“文件”菜單項的四個下拉菜單</p><p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p>
48、 new JMenuItem("新建"),</p><p> new JMenuItem("打開"),</p><p> new JMenuItem("保存"),</p><p> new JMenuItem("退出")</p><p><b>
49、 },</b></p><p> //編輯菜單的四個下拉菜單 </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)聽</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)聽“新建”事件</p><p> content.setText("");</p><p> file=null;</p><p> }else if("打開&
56、quot;.equals(name)){………………………………//監(jiān)聽“打開”事件</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();………………//打開選擇文件</p><p><b> unfold();</b></p><p><b> }</b></p><p>
58、}else if("保存".equals(name)){………………………………//監(jiān)聽“保存”事件</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)聽“剪切”事件</p><p> content.cut(
62、);</p><p> }else if("復(fù)制".equals(name)){ ………………………………//監(jiān)聽“復(fù)制”事件</p><p> content.copy();</p><p> }else if("粘貼".equals(name)){ ………………………………//監(jiān)聽“粘貼”事件</p>
63、<p> content.paste();</p><p> }else if("顏色".equals(name)){ ………………………………//監(jiān)聽“顏色”事件</p><p> color=JColorChooser.showDialog(mynotepad.this,"",color);</p><p>
64、; content.setForeground(color); ……………………………//對顏色進(jìn)行設(shè)置</p><p> }else if("關(guān)于".equals(name)){</p><p> about.setSize(300,150);…………………//設(shè)置“關(guān)于”對話框大小為300×150</p><p> abou
65、t.show();…………………………//顯示“關(guān)于”對話框</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)于”對話框設(shè)置為3行1列</p><p> about.getContentPane().setBackground(Color.white);//設(shè)置對話框背景色</p><p> about.getContentPan
71、e().add(new JLabel("我的記事本程序"));//對話框內(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è)置對話框前端顯示</p><p> about.setSize(100,100); </p><p> about.setLocation(250,170); //設(shè)置對話框顯示
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è)計體會</b></p><
77、;p> 經(jīng)過努力,基本上完成我的Java課程設(shè)計—簡單的記事本程序,也基本上實現(xiàn)了老師需求分析時所預(yù)期的功能。通過這次的課程設(shè)計,使將我從書本上學(xué)習(xí)到的理論知識用到了實踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過的知識,讓我更深層次地認(rèn)識到Java及其強大的功能。同時,做這門課程設(shè)計也進(jìn)一步加強了我的動手能力。為了完成好這次課程設(shè)計,我一邊上網(wǎng)查找相關(guān)資料,另一方面查閱相關(guān)書籍。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設(shè)法通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java記事本程序課程設(shè)計報告
- java課程設(shè)計--日歷記事本
- java課程設(shè)計日歷記事本
- java課程設(shè)計--日歷記事本
- 日歷記事本-java課程設(shè)計
- 日歷記事本java課程設(shè)計
- 日歷記事本java課程設(shè)計論文
- java記事本課程設(shè)計報告
- java記事本課程設(shè)計報告
- java課程設(shè)計--- 記事本程序設(shè)計
- 基于java的記事本程序課程設(shè)計
- java課程設(shè)計記事本(含代碼)1
- 基于java的記事本程序課程設(shè)計
- java課程設(shè)計---設(shè)計一個記事本
- java語言課程設(shè)計---記事本程序設(shè)計
- java記事本課程設(shè)計
- java課程設(shè)計--簡單記事本程序的設(shè)計
- java記事本課程設(shè)計
- java課程設(shè)計---基于java的記事本軟件設(shè)計
- java課程設(shè)計--編寫一個記事本程序
評論
0/150
提交評論