Java課程設(shè)計--文本編輯器_第1頁
Java課程設(shè)計--文本編輯器_第2頁
Java課程設(shè)計--文本編輯器_第3頁
Java課程設(shè)計--文本編輯器_第4頁
Java課程設(shè)計--文本編輯器_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 淮 海 工 學(xué) 院 計算機工程學(xué)院課程設(shè)計報告設(shè)計名稱: 面向?qū)ο笳n程設(shè)計 選題名稱: 文本編輯器的設(shè)計與實現(xiàn) 姓 名: 俞凱 學(xué) 號: 專業(yè)班級: 中新軟111 系 (院): 國際學(xué)院 設(shè)計時間: 2013.6.172013.6.30 設(shè)計地點: 軟件實驗室、教室 成績:指導(dǎo)教師評語: 簽名: 年 月 日在各種埋地管道的應(yīng)用過程中,管道能否達到規(guī)定的長期使用壽命的一個關(guān)鍵因素就是鋪設(shè)的質(zhì)量。而HDPE管道具有多種獨特性能使管道的鋪設(shè)更加安全面向?qū)ο笳n程設(shè)計報告 第 25 頁,共 25 頁1課程設(shè)計目的面向?qū)ο蟪绦蛟O(shè)計是一門實踐性很強的計算機專業(yè)基礎(chǔ)課程,課程設(shè)計是學(xué)習(xí)完該課程后進行的一次較

2、全面的綜合練習(xí)。其目的在于通過實踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計的理論、方法和基礎(chǔ)知識的理解,掌握使用Java語言進行面向?qū)ο笤O(shè)計的基本方法,提高運用面向?qū)ο笾R分析實際問題、解決實際問題的能力,提高學(xué)生的應(yīng)用能力。2課程設(shè)計任務(wù)與要求:2.1 文本編輯器的設(shè)計與實現(xiàn):設(shè)計一個類似于Windows記事本(Notepad)的Java程序??梢源蜷_、新建、保存一個文本文件;對選中的文本進行各種編輯操作(設(shè)置字體、字號、字型、對齊方式、背景、前景色、復(fù)制、粘貼、剪切、查找、替換等);在文本中能夠插入對象。2.2 設(shè)計要求:課程設(shè)計可選用Eclipse、JBuilder、NetBeans等作為開發(fā)平臺以提

3、高開發(fā)效率,通過資料查閱和學(xué)習(xí)盡可能熟練掌握其中一種集成開發(fā)環(huán)境。認真完成需求分析,建議采用UML建模技術(shù)進行系統(tǒng)的分析設(shè)計,在畫出系統(tǒng)用例圖和類圖,并將UML圖復(fù)制到設(shè)計報告中。認真按時完成課程設(shè)計報告,課程設(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中常用標(biāo)準(zhǔn)GUI組件及相應(yīng)的事件處理5) Ja

4、va的異常處理機制6) Java的數(shù)據(jù)庫連接技術(shù)7) Java的多線程技術(shù)與動畫制作8) Java的網(wǎng)絡(luò)編程3課程設(shè)計說明書1、 需求分析:簡單文本編輯器提供給用戶基本的純文本編輯功能,能夠?qū)⒂脩翡浫氲奈谋敬鎯Φ奖镜卮疟P中。能夠讀取磁盤中現(xiàn)有的純文本文件,以及方便用戶進行需要的編輯功能。文件操作能夠?qū)崿F(xiàn)新建、保存、打開文檔等,編輯操作能過實現(xiàn)文本的剪貼、復(fù)制、粘貼等,格式操作能過實現(xiàn)字體設(shè)置、背景等,幫助操作能夠?qū)崿F(xiàn)關(guān)于主題的查看等功能2、概要設(shè)計:(一)其基本功能包括: 基本的文本操作功能。包括新建,保存,打開,保存。 基本的編輯功能。包括復(fù)制,剪貼,粘貼。 基本的格式功能,背景。文本編輯器

5、模塊文件打開與保存變更面板顏色字體的設(shè)置字形和字體大小的設(shè)置剪切 復(fù)制 粘貼幫助中【關(guān)于主題】 簡單的幫助,關(guān)于主題。(二)主要的組件包括: 基本的Frame框架; 菜單; 打開文件對話框; 保存文件對話框; 顏色對話框; Choice下拉列表,運來實現(xiàn)字體設(shè)置; 簡單的幫助框架。(3) 設(shè)計流程示意圖建立基本框架添加編輯區(qū)添加菜單添加對話框完善菜單系統(tǒng)建立下拉列表編輯文字建立框架實現(xiàn)簡單幫助3、詳細設(shè)計:1) 文件打開與保存對話框filedialog_save=new FileDialog(this,"保存文件對話框",FileDialog.SAVE);filedialo

6、g_save.setVisible(false);filedialog_load=new FileDialog(this,"保存文件對話框",FileDialog.LOAD);filedialog_load.setVisible(false);filedialog_save.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)filedialog_save.setVisible(false););filedialog_load.addWindowListener(new W

7、indowAdapter()public void windowClosing(WindowEvent e)filedialog_load.setVisible(false); );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.ge

8、tFile(); 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_load.setVisible(true);area.setText(null);String s;if(filedialog_load.getFile()!=null)

9、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(); file_reader.close();catch(IOException e1) 文本編輯器的保存和打開功能的實現(xiàn)用文件對話框及輸入輸出流來完成。先建立打開和

10、保存對話框,在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.getBackground(); if(newColor!=null) area.setBackground(newColor); 文本編輯器要實現(xiàn)背景功能可以用javax.swing包中的JColorChoose

11、r類的靜態(tài)方法。Pubic static Color showDialog(Component,String title,Color initialColor),其中參數(shù)Component指定對話框所依賴的組件,即文本編輯器中的文本區(qū)area,title指定對話框的標(biāo)題“調(diào)色板”,initialColor指定對話框返回的初始顏色,即對話框消失后,返回默認值。3) 建立Choice下拉列表實現(xiàn)對字體的設(shè)置Choice list;GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String font

12、Name=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è)置,我選用了GraphicsEnvironment對象調(diào)用String getAvailableFontFamilyNames()方法,該方法可以獲取計算機上所有可用的字體名稱,并存放到字符串?dāng)?shù)組中。4)字形,字體大小部分else if(e.

13、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.getFont(); int style=font.getStyle();style=style2; area.setFont(new Font("",style,font.getS

14、ize();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=font.getStyle();area.setFont(new Font(font.getName(),style,12);else if(e

15、.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.getName(),style,36);5)剪切,復(fù)制,粘貼部分public void changedUpdate(DocumentEvent e

16、) 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();else if(e.getSource()=item3)area.copy();else if(e.getSource()=item4)area.pa

17、ste(); 文本編輯器中關(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 implements ActionListenerButton btn;Label lab;zhuti()setLayout(null);btn=new Bu

18、tton("確定"); 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);btn.setBounds(100,100,50,30);btn.setBa

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

20、剪貼,粘貼,復(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,再實現(xiàn)對它的監(jiān)聽 list.addItemList

21、ener(this), 最后用public void itemStateChanged(ItemEvent e)方法實現(xiàn),需注意的是這種方法的實現(xiàn)只對javax.swing包中的組件有效,對于java.awt包中的組件,系統(tǒng)則是采取默認的字體名稱.2、用戶使用說明:軟硬件要求:軟件方面:Java開發(fā)環(huán)境硬件方面:JDK軟件抑或是Eclipse軟件對硬件沒有很高的要求。3、 測試結(jié)果:圖1:文本編輯器的運行結(jié)果:圖2文本編輯器中的菜單:圖3:字體選擇下拉列表:圖4:文本編輯器文件對話框(保存文件對話框):圖5:選擇背景顏色對話框:附錄(源代碼):import java.awt.*;import

22、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,menu2,menu3,menu4,menu5,menu6;Men

23、uItem 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) super(s);setSize(600,400);list=new

24、Choice();area=new JTextArea();setVisible(true);GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName=ge.getAvailableFontFamilyNames(); for(int i=0;i<fontName.length;i+) list.add(fontNamei);add(list,"North");add(area,"Center");list.addItemLis

25、tener(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("

26、打開");item1=new MenuItem("新建");item2=new MenuItem("剪切");item3=new MenuItem("復(fù)制");item4=new MenuItem("粘貼");item5=new MenuItem("背景");item6=new MenuItem("關(guān)于主題");item7=new MenuItem("退出");item8=new MenuItem("常規(guī)");item9=ne

27、w MenuItem("傾斜");item10=new MenuItem("加粗");item11=new MenuItem("12");item12=new MenuItem("24");item13=new MenuItem("36");item14=new MenuItem("查找");item15=new MenuItem("替換");itemSave.addActionListener(this);itemLoad.addActionListen

28、er(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.addActionListener(this);item10.addActionListe

29、ner(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);menu1.addSeparator();menu1.add

30、(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(menu5);menu3.addSeparator();menu

31、3.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(menu3);menubar.add(menu4);setM

32、enuBar(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 windo

33、wClosing(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(0);)

34、;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)change

35、dUpdate(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.write(

36、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.getFile();

37、 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)ar

38、ea.copy();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

39、(0);else if(e.getSource()=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.getSiz

40、e();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)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();

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論