課程設(shè)計(jì)基于于JAVA的記事本編輯器的設(shè)計(jì)與實(shí)現(xiàn)后送源代碼_第1頁
課程設(shè)計(jì)基于于JAVA的記事本編輯器的設(shè)計(jì)與實(shí)現(xiàn)后送源代碼_第2頁
課程設(shè)計(jì)基于于JAVA的記事本編輯器的設(shè)計(jì)與實(shí)現(xiàn)后送源代碼_第3頁
課程設(shè)計(jì)基于于JAVA的記事本編輯器的設(shè)計(jì)與實(shí)現(xiàn)后送源代碼_第4頁
課程設(shè)計(jì)基于于JAVA的記事本編輯器的設(shè)計(jì)與實(shí)現(xiàn)后送源代碼_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 面向?qū)ο笳n程設(shè)計(jì) 選題名稱: 文本編輯器的設(shè)計(jì)與實(shí)現(xiàn) 姓 名: 學(xué) 號(hào): 專業(yè)班級(jí): d軟件081 系 (院): 計(jì)算機(jī)工程學(xué)院 設(shè)計(jì)時(shí)間: 2010.6.142010.6.27 設(shè)計(jì)地點(diǎn): 軟件實(shí)驗(yàn)室、教室 成績(jī):指導(dǎo)教師評(píng)語: 簽名: 年 月 日1課程設(shè)計(jì)目的面向?qū)ο蟪绦蛟O(shè)計(jì)是一門實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)基礎(chǔ)課程,課程設(shè)計(jì)是學(xué)習(xí)完該課程后進(jìn)行的一次較全面的綜合練習(xí)。其目的在于通過實(shí)踐加深學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識(shí)的理解,掌握使用java語言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提高運(yùn)用面向?qū)ο笾R(shí)分析實(shí)際問題、解決實(shí)際問題的能力,提高學(xué)生的應(yīng)用

2、能力。2課程設(shè)計(jì)任務(wù)與要求:2.1文本編輯器的設(shè)計(jì)與實(shí)現(xiàn) 設(shè)計(jì)一個(gè)類似于windows記事本(notepad)的java程序??梢源蜷_、新建、保存一個(gè)文本文件;對(duì)選中的文本進(jìn)行各種編輯操作(設(shè)置字體、字號(hào)、字型、對(duì)齊方式、背景、前景色、復(fù)制、粘貼、剪切、查找、替換等);在文本中能夠插入對(duì)象。2.2設(shè)計(jì)要求:課程設(shè)計(jì)可選用eclipse、jbuilder、netbeans等作為開發(fā)平臺(tái)以提高開發(fā)效率,通過資料查閱和學(xué)習(xí)盡可能熟練掌握其中一種集成開發(fā)環(huán)境。認(rèn)真完成需求分析,建議采用uml建模技術(shù)進(jìn)行系統(tǒng)的分析設(shè)計(jì),在畫出系統(tǒng)用例圖和類圖,并將uml圖復(fù)制到設(shè)計(jì)報(bào)告中。認(rèn)真按時(shí)完成課程設(shè)計(jì)報(bào)告,課程

3、設(shè)計(jì)報(bào)告內(nèi)容包括:課程設(shè)計(jì)目的、設(shè)計(jì)任務(wù)與要求、設(shè)計(jì)說明書、設(shè)計(jì)成果和設(shè)計(jì)心得五個(gè)部分,具體要求見設(shè)計(jì)報(bào)告模板。通過這次設(shè)計(jì),要求掌握以下內(nèi)容:1) 面向?qū)ο蠹夹g(shù)中的繼承與多態(tài)(重載和覆蓋)機(jī)制、各種修飾符的使用2) 類、包、接口的定義與使用3) 常用工具類與算法的實(shí)現(xiàn)(數(shù)組、向量、字符串、鏈表)4) java.awt、javax.swing中常用標(biāo)準(zhǔn)gui組件及相應(yīng)的事件處理5) java的異常處理機(jī)制6) java的數(shù)據(jù)庫連接技術(shù)7) java的多線程技術(shù)與動(dòng)畫制作8) java的網(wǎng)絡(luò)編程3課程設(shè)計(jì)說明書1、需求分析簡(jiǎn)單文本編輯器提供給用戶基本的純文本編輯功能,能夠?qū)⒂脩翡浫氲奈谋敬鎯?chǔ)到本

4、地磁盤中。能夠讀取磁盤中現(xiàn)有的純文本文件,以及方便用戶進(jìn)行需要的編輯功能。文件操作能夠?qū)崿F(xiàn)新建、保存、打開文檔等,編輯操作能過實(shí)現(xiàn)文本的剪貼、復(fù)制、粘貼等,格式操作能過實(shí)現(xiàn)字體設(shè)置、背景等,幫助操作能夠?qū)崿F(xiàn)關(guān)于主題的查看等功能2、概要設(shè)計(jì)(一)其基本功能包括:1)基本的文本操作功能。包括新建,保存,打開,保存。2)基本的編輯功能。包括復(fù)制,剪貼,粘貼。3)基本的格式功能,背景。4)簡(jiǎn)單的幫助,關(guān)于主題。(二)主要的組件包括:1) 基本的frame框架;2) 菜單;3) 打開文件對(duì)話框;4) 保存文件對(duì)話框;5) 顏色對(duì)話框;6) choice下拉列表,運(yùn)來實(shí)現(xiàn)字體設(shè)置;7) 簡(jiǎn)單的幫助框架。(

5、三)設(shè)計(jì)示意圖建立基本框架添加編輯區(qū)添加菜單添加對(duì)話框完善菜單系統(tǒng)建立下拉列表編輯文字建立框架實(shí)現(xiàn)簡(jiǎn)單幫助3、詳細(xì)設(shè)計(jì)1) 文件打開與保存對(duì)話框filedialog_save=new filedialog(this,"保存文件對(duì)話框",filedialog.save);filedialog_save.setvisible(false);filedialog_load=new filedialog(this,"保存文件對(duì)話框",filedialog.load);filedialog_load.setvisible(false);filedialog_sav

6、e.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_save.setvisible(false););filedialog_load.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_load.setvisible(false); );public void actionperformed(actionevent e)if(e.getsourc

7、e()=itemsave)filedialog_save.setvisible(true);if(filedialog_save.getfile()!=null)try file file=new file(filedialog_save.getdirectory(), filedialog_save.getfile(); tofile=new filewriter(file); out=new bufferedwriter(tofile); out.write(area.gettext(),0,(area.gettext().length(); out.close(); tofile.clo

8、se();catch(ioexception e1) else if(e.getsource()=itemload)filedialog_load.setvisible(true);area.settext(null);string s;if(filedialog_load.getfile()!=null)tryfile file=new file(filedialog_load.getdirectory(), filedialog_load.getfile(); file_reader=new filereader(file); in=new bufferedreader(file_read

9、er); while(s=in.readline()!=null) area.append(s+'n'); in.close(); file_reader.close();catch(ioexception e1) 文本編輯器的保存和打開功能的實(shí)現(xiàn)用文件對(duì)話框及輸入輸出流來完成。先建立打開和保存對(duì)話框,在public void actionperformed(actionevent e)里分別用filewriter()和filereader()方法實(shí)現(xiàn)保存和打開。2) 調(diào)用顏色對(duì)話框else if(e.getsource()=item5) color newcolor=jcol

10、orchooser.showdialog(this,"調(diào)色板",area.getbackground(); if(newcolor!=null) area.setbackground(newcolor); 文本編輯器要實(shí)現(xiàn)背景功能可以用javax.swing包中的jcolorchooser類的靜態(tài)方法。pubic static color showdialog(component,string title,color initialcolor),其中參數(shù)component指定對(duì)話框所依賴的組件,即文本編輯器中的文本區(qū)area,title指定對(duì)話框的標(biāo)題“調(diào)色板”,initi

11、alcolor指定對(duì)話框返回的初始顏色,即對(duì)話框消失后,返回默認(rèn)值。3) 建立choice下拉列表實(shí)現(xiàn)對(duì)字體的設(shè)置choice list;graphicsenvironment ge=graphicsenvironment.getlocalgraphicsenvironment(); string fontname=ge.getavailablefontfamilynames();public void itemstatechanged(itemevent e)string name=list.getselecteditem();font f=new font(name,font.plain,

12、15);area.setfont(f);文本編輯器要實(shí)現(xiàn)對(duì)字體的設(shè)置,我選用了graphicsenvironment對(duì)象調(diào)用string getavailablefontfamilynames()方法,該方法可以獲取計(jì)算機(jī)上所有可用的字體名稱,并存放到字符串?dāng)?shù)組中。4)字形,字體大小部分else if(e.getsource()=item8) /設(shè)置字形(常規(guī),傾斜,加粗)font font=area.getfont(); int style=font.getstyle();style=style0; area.setfont(new font("",style,font.

13、getsize();else if(e.getsource()=item9)font font=area.getfont(); int style=font.getstyle();style=style2; area.setfont(new font("",style,font.getsize();else if(e.getsource()=item10)font font=area.getfont();int style=font.getstyle();style=style1; area.setfont(new font("",style,font.

14、getsize();else if(e.getsource()=item11) /設(shè)置字體大小font font=area.getfont();int style=font.getstyle();area.setfont(new font(font.getname(),style,12);else if(e.getsource()=item12)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,24);else if(e.getsource()=item1

15、3)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,36);5)剪切,復(fù)制,粘貼部分public void changedupdate(documentevent e) string s=area.gettext();public void removeupdate(documentevent e)changedupdate(e);public void insertupdate(documentevent e)changedupdate(e);publ

16、ic void actionperformed(actionevent e) else if(e.getsource()=item2) area.cut();else if(e.getsource()=item3)area.copy();else if(e.getsource()=item4)area.paste(); 文本編輯器中關(guān)于剪切,復(fù)制,粘貼功能的實(shí)現(xiàn)我選用處理jtextarea的documentevent事件,通過area.cut(),area.copy(),area.paste()方法,點(diǎn)擊“編輯”中相應(yīng)菜單項(xiàng)可以選擇將文本區(qū)中選中的內(nèi)容剪切,復(fù)制,粘貼。6) 幫助中關(guān)于主題部分

17、else if(e.getsource()=item6)zhuti zt=new zhuti();class zhuti extends frame implements actionlistenerbutton btn;label lab;zhuti()setlayout(null);btn=new button("確定"); lab=new label("這是一個(gè)簡(jiǎn)單的文本編輯器!");add(btn);add(lab);btn.addactionlistener(this);setbounds(200,200,250,150);setvisible

18、(true);lab.setbounds(20 ,60,220,30);lab.setfont(new font("楷體",font.bold,16);lab.setbackground(color.cyan);btn.setbounds(100,100,50,30);btn.setbackground(color.cyan);public void actionperformed(actionevent e)if(e.getsource()=btn)dispose(); 對(duì)于幫助中關(guān)于主題部分的實(shí)現(xiàn),我另構(gòu)建了一個(gè)frame框架,主要是由一個(gè)標(biāo)簽及一個(gè)按鈕構(gòu)成,由標(biāo)簽輸出

19、“這是一個(gè)簡(jiǎn)單的文本編輯器!”,按鈕用dispose()方法實(shí)現(xiàn)退出功能。7)類圖 4課程設(shè)計(jì)成果4、調(diào)試分析(1)關(guān)于打開和保存我運(yùn)用了文件對(duì)話框, filedialog_save和filedialog_load以及文件輸入輸出流來實(shí)現(xiàn),新建功能我選用了area.settext(null)方法.(2)對(duì)于剪貼,粘貼,復(fù)制的實(shí)現(xiàn)則用public void removeupdate(documentevent e)及 public void insertupdate(documentevent e).(3)背景的運(yùn)用也是調(diào)用了顏色對(duì)話框,需引用import javax.swing.jcolorc

20、hooser包用 color newcolor=jcolorchooser.showdialog(this,"調(diào)色板",area.getbackground()方法;(4)至于字體功能的實(shí)現(xiàn),則是先創(chuàng)建一個(gè)下拉列表choice list,再實(shí)現(xiàn)對(duì)它的監(jiān)聽 list.additemlistener(this), 最后用public void itemstatechanged(itemevent e)方法實(shí)現(xiàn),需注意的是這種方法的實(shí)現(xiàn)只對(duì)javax.swing包中的組件有效,對(duì)于java.awt包中的組件,系統(tǒng)則是采取默認(rèn)的字體名稱.5、用戶使用說明軟硬件要求:軟件方面:jav

21、a開發(fā)環(huán)境硬件方面:jdk軟件抑或是eclipse軟件對(duì)硬件不是有很高的要求。6、測(cè)試結(jié)果圖1:文本編輯器的運(yùn)行結(jié)果:圖2文本編輯器中的菜單:圖3:字體選擇下拉列表圖4:文本編輯器文件對(duì)話框(保存文件對(duì)話框):圖5:選擇背景顏色對(duì)話框:圖6:簡(jiǎn)單的幫助對(duì)話框:附錄(程序代碼)import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.jcolorchooser;import javax.swing.*;import javax.swing.event.*;class window extends f

22、rame implements actionlistener,itemlistener,documentlistenerfiledialog filedialog_save,filedialog_load;menubar menubar;menu menu1,menu2,menu3,menu4,menu5,menu6;menuitem itemsave,itemload,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15;choice list;jtext

23、area area;bufferedreader in;filereader file_reader;bufferedwriter out;filewriter tofile;jscrollpane scrollpane;window(string s) super(s);setsize(600,400);list=new choice();area=new jtextarea();setvisible(true);graphicsenvironment ge=graphicsenvironment.getlocalgraphicsenvironment(); string fontname=

24、ge.getavailablefontfamilynames(); for(int i=0;i<fontname.length;i+) list.add(fontnamei);add(list,"north");add(area,"center");list.additemlistener(this); validate();menubar=new menubar();menu1=new menu("文件");menu2=new menu("編輯");menu3=new menu("格式"

25、);menu4=new menu("幫助");menu5=new menu("字形");menu6=new menu("字體大小");itemsave=new menuitem("保存");itemload=new menuitem("打開");item1=new menuitem("新建");item2=new menuitem("剪切");item3=new menuitem("復(fù)制");item4=new menuitem(&qu

26、ot;粘貼");item5=new menuitem("背景");item6=new menuitem("關(guān)于主題");item7=new menuitem("退出");item8=new menuitem("常規(guī)");item9=new menuitem("傾斜");item10=new menuitem("加粗");item11=new menuitem("12");item12=new menuitem("24");it

27、em13=new menuitem("36");item14=new menuitem("查找");item15-new menuitem("替換");itemsave.addactionlistener(this);itemload.addactionlistener(this);item1.addactionlistener(this);item2.addactionlistener(this);item3.addactionlistener(this);item4.addactionlistener(this);item5.ad

28、dactionlistener(this);item6.addactionlistener(this);item7.addactionlistener(this);item8.addactionlistener(this);item9.addactionlistener(this);item10.addactionlistener(this);item11.addactionlistener(this); item12.addactionlistener(this);item13.addactionlistener(this);item14.addactionlistener(this);it

29、em15.addactionlistener(this);(area.getdocument().adddocumentlistener(this);menu1.add(item1);menu1.addseparator();menu1.add(itemsave);menu1.addseparator();menu1.add(itemload);menu1.addseparator();menu1.add(item7);menu2.add(item2);menu2.addseparator();menu2.add(item3);menu2.addseparator();menu2.add(it

30、em4);menu2.addseparator();menu2.add(item14);menu2.addseparator();menu2.add(item15);menu3.add(item5);menu3.addseparator();menu3.add(menu5);menu3.addseparator();menu3.add(menu6);menu4.add(item6);menu5.add(item8);menu5.addseparator();menu5.add(item9);menu5.addseparator();menu5.add(item10);menu6.add(ite

31、m11);menu6.addseparator();menu6.add(item12);menu6.addseparator();menu6.add(item13);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);menubar.add(menu4);setmenubar(menubar);filedialog_save=new filedialog(this,"保存文件對(duì)話框",filedialog.save);filedialog_save.setvisible(false);filedialog_loa

32、d=new filedialog(this,"保存文件對(duì)話框",filedialog.load);filedialog_load.setvisible(false);filedialog_save.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_save.setvisible(false););filedialog_load.addwindowlistener(new windowadapter()public void windowclosing

33、(windowevent e)filedialog_load.setvisible(false); );addwindowlistener(new windowadapter()public void windowclosing(windowevent e)setvisible(false);system.exit(0););public void itemstatechanged(itemevent e)string name=list.getselecteditem();font f=new font(name,font.plain,12);area.setfont(f);public v

34、oid changedupdate(documentevent e)string s=area.gettext();public void removeupdate(documentevent e)changedupdate(e);public void insertupdate(documentevent e)changedupdate(e);public void actionperformed(actionevent e)if(e.getsource()=itemsave)filedialog_save.setvisible(true);if(filedialog_save.getfil

35、e()!=null)try file file=new file(filedialog_save.getdirectory(), filedialog_save.getfile(); tofile=new filewriter(file); out=new bufferedwriter(tofile); out.write(area.gettext(),0,(area.gettext().length(); out.close(); tofile.close();catch(ioexception e1) else if(e.getsource()=itemload)filedialog_lo

36、ad.setvisible(true);area.settext(null);string s;if(filedialog_load.getfile()!=null)tryfile file=new file(filedialog_load.getdirectory(), filedialog_load.getfile(); file_reader=new filereader(file); in=new bufferedreader(file_reader); while(s=in.readline()!=null) area.append(s+'n'); in.close(

37、); file_reader.close();catch(ioexception e1) else if(e.getsource()=item1) area.settext(null);else if(e.getsource()=item2) area.cut();else if(e.getsource()=item3)area.copy();else if(e.getsource()=item4)area.paste();else if(e.getsource()=item5) color newcolor=jcolorchooser.showdialog(this,"調(diào)色板&qu

38、ot;,area.getbackground();if(newcolor!=null) area.setbackground(newcolor); else if(e.getsource()=item6) zhuti zt=new zhuti();else if(e.getsource()=item7)system.exit(0);else if(e.getsource()=item8)font font=area.getfont(); int style=font.getstyle();style=style0; area.setfont(new font("",styl

39、e,font.getsize();else if(e.getsource()=item9)font font=area.getfont(); int style=font.getstyle();style=style2; area.setfont(new font("",style,font.getsize();else if(e.getsource()=item10)font font=area.getfont();int style=font.getstyle();style=style1; area.setfont(new font("",styl

40、e,font.getsize();else if(e.getsource()=item11)font font=area.getfont();int style=font.getstyle();area.setfont(new font(font.getname(),style,12);else if(e.getsource()=item12)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,24);else if(e.getsource()=item13)font font=area.getfont();int style=fo

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論