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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、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.getsource()=itemsave)filedialog_

7、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.close();catch(ioexception e

8、1) 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_reader); while(s=in.readline

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

10、.getbackground(); if(newcolor!=null) area.setbackground(newcolor); 文本編輯器要實現(xiàn)背景功能可以用javax.swing包中的jcolorchooser類的靜態(tài)方法。pubic static color showdialog(component,string title,color initialcolor),其中參數(shù)component指定對話框所依賴的組件,即文本編輯器中的文本區(qū)area,title指定對話框的標題“調(diào)色板”,initialcolor指定對話框返回的初始顏色,即對話框消失后,返回默認值。3) 建立choice下

11、拉列表實現(xiàn)對字體的設(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,15);area.setfont(f);文本編輯器要實現(xiàn)對字體的設(shè)置,我選用了graphic

12、senvironment對象調(diào)用string getavailablefontfamilynames()方法,該方法可以獲取計算機上所有可用的字體名稱,并存放到字符串數(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.getsize();else if(e.getsource()=item9)font font=area.getfo

13、nt(); 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.getsize();else if(e.getsource()=item11) /設(shè)置字體大小font font=area.getfont();int style=

14、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=font.getstyle(); area.setfont(new font(font.g

15、etname(),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);public void actionperformed(actionevent e) else if(e.getsource()=item2) area.cut();els

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

17、nts actionlistenerbutton btn;label lab;zhuti()setlayout(null);btn=new button(確定); lab=new label(這是一個簡單的文本編輯器!);add(btn);add(lab);btn.addactionlistener(this);setbounds(200,200,250,150);setvisible(true);lab.setbounds(20 ,60,220,30);lab.setfont(new font(楷體,font.bold,16);lab.setbackground(color.cyan);bt

18、n.setbounds(100,100,50,30);btn.setbackground(color.cyan);public void actionperformed(actionevent e)if(e.getsource()=btn)dispose(); 對于幫助中關(guān)于主題部分的實現(xiàn),我另構(gòu)建了一個frame框架,主要是由一個標簽及一個按鈕構(gòu)成,由標簽輸出“這是一個簡單的文本編輯器!”,按鈕用dispose()方法實現(xiàn)退出功能。7)類圖 4課程設(shè)計成果4、調(diào)試分析(1)關(guān)于打開和保存我運用了文件對話框, filedialog_save和filedialog_load以及文件輸入輸出流來實

19、現(xiàn),新建功能我選用了area.settext(null)方法.(2)對于剪貼,粘貼,復(fù)制的實現(xiàn)則用public void removeupdate(documentevent e)及 public void insertupdate(documentevent e).(3)背景的運用也是調(diào)用了顏色對話框,需引用import javax.swing.jcolorchooser包用 color newcolor=jcolorchooser.showdialog(this,調(diào)色板,area.getbackground()方法;(4)至于字體功能的實現(xiàn),則是先創(chuàng)建一個下拉列表choice list,再

20、實現(xiàn)對它的監(jiān)聽 list.additemlistener(this), 最后用public void itemstatechanged(itemevent e)方法實現(xiàn),需注意的是這種方法的實現(xiàn)只對javax.swing包中的組件有效,對于java.awt包中的組件,系統(tǒng)則是采取默認的字體名稱.5、用戶使用說明軟硬件要求:軟件方面:java開發(fā)環(huán)境硬件方面:jdk軟件抑或是eclipse軟件對硬件不是有很高的要求。6、測試結(jié)果圖1:文本編輯器的運行結(jié)果:圖2文本編輯器中的菜單:圖3:字體選擇下拉列表圖4:文本編輯器文件對話框(保存文件對話框):圖5:選擇背景顏色對話框:圖6:簡單的幫助對話框:

21、附錄(程序代碼)import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.jcolorchooser;import javax.swing.*;import javax.swing.event.*;class window extends frame implements actionlistener,itemlistener,documentlistenerfiledialog filedialog_save,filedialog_load;menubar menubar;menu menu1,

22、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;jtextarea area;bufferedreader in;filereader file_reader;bufferedwriter out;filewriter tofile;jscrollpane scrollpane;window(string s) su

23、per(s);setsize(600,400);list=new choice();area=new jtextarea();setvisible(true);graphicsenvironment ge=graphicsenvironment.getlocalgraphicsenvironment(); string fontname=ge.getavailablefontfamilynames(); for(int i=0;ifontname.length;i+) list.add(fontnamei);add(list,north);add(area,center);list.addit

24、emlistener(this); validate();menubar=new menubar();menu1=new menu(文件);menu2=new menu(編輯);menu3=new menu(格式);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 me

25、nuitem(粘貼);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);item13=new menuitem(36);item14=new menuitem(查找);item15-new menuitem(替換);itemsave.addactionlistener(t

26、his);itemload.addactionlistener(this);item1.addactionlistener(this);item2.addactionlistener(this);item3.addactionlistener(this);item4.addactionlistener(this);item5.addactionlistener(this);item6.addactionlistener(this);item7.addactionlistener(this);item8.addactionlistener(this);item9.addactionlistene

27、r(this);item10.addactionlistener(this);item11.addactionlistener(this); item12.addactionlistener(this);item13.addactionlistener(this);item14.addactionlistener(this);item15.addactionlistener(this);(area.getdocument().adddocumentlistener(this);menu1.add(item1);menu1.addseparator();menu1.add(itemsave);m

28、enu1.addseparator();menu1.add(itemload);menu1.addseparator();menu1.add(item7);menu2.add(item2);menu2.addseparator();menu2.add(item3);menu2.addseparator();menu2.add(item4);menu2.addseparator();menu2.add(item14);menu2.addseparator();menu2.add(item15);menu3.add(item5);menu3.addseparator();menu3.add(men

29、u5);menu3.addseparator();menu3.add(menu6);menu4.add(item6);menu5.add(item8);menu5.addseparator();menu5.add(item9);menu5.addseparator();menu5.add(item10);menu6.add(item11);menu6.addseparator();menu6.add(item12);menu6.addseparator();menu6.add(item13);menubar.add(menu1);menubar.add(menu2);menubar.add(m

30、enu3);menubar.add(menu4);setmenubar(menubar);filedialog_save=new filedialog(this,保存文件對話框,filedialog.save);filedialog_save.setvisible(false);filedialog_load=new filedialog(this,保存文件對話框,filedialog.load);filedialog_load.setvisible(false);filedialog_save.addwindowlistener(new windowadapter()public void

31、windowclosing(windowevent e)filedialog_save.setvisible(false););filedialog_load.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_load.setvisible(false); );addwindowlistener(new windowadapter()public void windowclosing(windowevent e)setvisible(false);system.exit

32、(0););public void itemstatechanged(itemevent e)string name=list.getselecteditem();font f=new font(name,font.plain,12);area.setfont(f);public void changedupdate(documentevent e)string s=area.gettext();public void removeupdate(documentevent e)changedupdate(e);public void insertupdate(documentevent e)c

33、hangedupdate(e);public void actionperformed(actionevent e)if(e.getsource()=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.w

34、rite(area.gettext(),0,(area.gettext().length(); out.close(); tofile.close();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.getfi

35、le(); file_reader=new filereader(file); in=new bufferedreader(file_reader); while(s=in.readline()!=null) area.append(s+n); in.close(); 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.co

36、py();else if(e.getsource()=item4)area.paste();else if(e.getsource()=item5) color newcolor=jcolorchooser.showdialog(this,調(diào)色板,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.get

37、source()=item8)font font=area.getfont(); int style=font.getstyle();style=style0; area.setfont(new font(,style,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 fon

38、t=area.getfont();int style=font.getstyle();style=style1; area.setfont(new font(,style,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=font.getst

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論