版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 淮 海 工 學(xué) 院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 面向?qū)ο笳n程設(shè)計(jì) 選題名稱: 文本編輯器的設(shè)計(jì)與實(shí)現(xiàn) 姓 名: 俞凱 學(xué) 號(hào): 專業(yè)班級(jí): 中新軟111 系 (院): 國(guó)際學(xué)院 設(shè)計(jì)時(shí)間: 2013.6.172013.6.30 設(shè)計(jì)地點(diǎn): 軟件實(shí)驗(yàn)室、教室 成績(jī):指導(dǎo)教師評(píng)語: 簽名: 年 月 日專心-專注-專業(yè)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)
2、用面向?qū)ο笾R(shí)分析實(shí)際問題、解決實(shí)際問題的能力,提高學(xué)生的應(yīng)用能力。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)用例圖和
3、類圖,并將UML圖復(fù)制到設(shè)計(jì)報(bào)告中。認(rèn)真按時(shí)完成課程設(shè)計(jì)報(bào)告,課程設(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)單
4、文本編輯器提供給用戶基本的純文本編輯功能,能夠?qū)⒂脩翡浫氲奈谋敬鎯?chǔ)到本地磁盤中。能夠讀取磁盤中現(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ì):(一)其基本功能包括: 基本的文本操作功能。包括新建,保存,打開,保存。 基本的編輯功能。包括復(fù)制,剪貼,粘貼。 基本的格式功能,背景。文本編輯器模塊文件打開與保存變更面板顏色字體的設(shè)置字形和字體大小的設(shè)置剪切 復(fù)制 粘貼幫助中【關(guān)于主題】 簡(jiǎn)單的幫助,關(guān)于主題。(二)主要的組件包括: 基
5、本的Frame框架; 菜單; 打開文件對(duì)話框; 保存文件對(duì)話框; 顏色對(duì)話框; Choice下拉列表,運(yùn)來實(shí)現(xiàn)字體設(shè)置; 簡(jiǎn)單的幫助框架。(3) 設(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ì)
6、話框",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(WindowEvent e)filedialog_load.se
7、tVisible(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.getFile(); tofile=new FileWriter(file); out=new BufferedWriter(tofile); ou
8、t.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)tryFile file=new File(filedialog_load.getDirectory(), filedialog_load.ge
9、tFile(); 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) 文本編輯器的保存和打開功能的實(shí)現(xiàn)用文件對(duì)話框及輸入輸出流來完成。先建立打開和保存對(duì)話框,在public void actionPerformed(ActionEvent e)里分別用FileWriter()和FileRe
10、ader()方法實(shí)現(xiàn)保存和打開。2) 調(diào)用顏色對(duì)話框else if(e.getSource()=item5) Color newColor=JColorChooser.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 initi
11、alColor),其中參數(shù)Component指定對(duì)話框所依賴的組件,即文本編輯器中的文本區(qū)area,title指定對(duì)話框的標(biāo)題“調(diào)色板”,initialColor指定對(duì)話框返回的初始顏色,即對(duì)話框消失后,返回默認(rèn)值。3) 建立Choice下拉列表實(shí)現(xiàn)對(duì)字體的設(shè)置Choice list;GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName=ge.getAvailableFontFamilyNames();public void itemStateChanged(ItemE
12、vent e)String name=list.getSelectedItem();Font f=new Font(name,Font.PLAIN,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=fo
13、nt.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 font=area.getFont();int style=fo
14、nt.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.getSource()=item12)Font font=area.getFont();int style=font.getStyle();
15、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) String s=area.getText();public void removeUpdate(DocumentEvent e)chang
16、edUpdate(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.paste(); 文本編輯器中關(guān)于剪切,復(fù)制,粘貼功能的實(shí)現(xiàn)我選用處理JTextArea的DocumentEvent事件,通過area.cut(),
17、area.copy(),area.paste()方法,點(diǎn)擊“編輯”中相應(yīng)菜單項(xià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 Button("確定"); lab=new Label("這是一個(gè)簡(jiǎn)單的文本編輯器!");add(btn);
18、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.setBackground(Color.cyan);public void actionPerformed(ActionEvent e)if(e.getS
19、ource()=btn)dispose(); 對(duì)于幫助中關(guān)于主題部分的實(shí)現(xiàn),我另構(gòu)建了一個(gè)Frame框架,主要是由一個(gè)標(biāo)簽及一個(gè)按鈕構(gòu)成,由標(biāo)簽輸出“這是一個(gè)簡(jiǎn)單的文本編輯器!”,按鈕用dispose()方法實(shí)現(xiàn)退出功能。7)類圖4課程設(shè)計(jì)成果1、調(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 inse
20、rtUpdate(DocumentEvent e).(3)背景的運(yùn)用也是調(diào)用了顏色對(duì)話框,需引用import javax.swing.JcolorChooser包用 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í)
21、現(xiàn)只對(duì)javax.swing包中的組件有效,對(duì)于java.awt包中的組件,系統(tǒng)則是采取默認(rèn)的字體名稱.2、用戶使用說明:軟硬件要求:軟件方面:Java開發(fā)環(huán)境硬件方面:JDK軟件抑或是Eclipse軟件對(duì)硬件沒有很高的要求。3、 測(cè)試結(jié)果:圖1:文本編輯器的運(yùn)行結(jié)果:圖2文本編輯器中的菜單:圖3:字體選擇下拉列表:圖4:文本編輯器文件對(duì)話框(保存文件對(duì)話框):圖5:選擇背景顏色對(duì)話框:附錄(源代碼):import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.JColorChooser;impor
22、t 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;MenuItem itemSave,itemLoad,item1,item2,item3,item4,item5,item6,item7,item8,
23、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 Choice();area=new JTextArea();setVisible(true);GraphicsEnvironment ge=Gr
24、aphicsEnvironment.getLocalGraphicsEnvironment(); String fontName=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("文件&qu
25、ot;);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("剪切
26、");item3=new MenuItem("復(fù)制");item4=new MenuItem("粘貼");item5=new MenuItem("背景");item6=new MenuItem("關(guān)于主題");item7=new MenuItem("退出");item8=new MenuItem("常規(guī)");item9=new MenuItem("傾斜");item10=new MenuItem("加粗");item11=ne
27、w MenuItem("12");item12=new MenuItem("24");item13=new MenuItem("36");item14=new MenuItem("查找");item15=new MenuItem("替換");itemSave.addActionListener(this);itemLoad.addActionListener(this);item1.addActionListener(this);item2.addActionListener(this);ite
28、m3.addActionListener(this);item4.addActionListener(this);item5.addActionListener(this);item6.addActionListener(this);item7.addActionListener(this);item8.addActionListener(this);item9.addActionListener(this);item10.addActionListener(this);item11.addActionListener(this); item12.addActionListener(this)
29、;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(itemLoad);menu1.addSeparator();menu1.add(item7);menu2.add(item2);menu2.
30、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();menu3.add(menu6);menu4.add(item6);menu5.add(item8);menu5.addSeparator();menu
31、5.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);setMenuBar(menubar);filedialog_save=new FileDialog(this,"保存文件對(duì)話框",
32、FileDialog.SAVE);filedialog_save.setVisible(false);filedialog_load=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_lo
33、ad.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););public void itemStateChanged(ItemEvent e)String name=list.getSelectedIt
34、em();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)changedUpdate(e);public void actionPerformed(ActionEvent e)if(e.getSource()=it
35、emSave)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.close();c
36、atch(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_reader); w
37、hile(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.copy();else if(e.getSource()=item4)area.paste();else if(e.getSource()
38、=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.getSource()=item8)Font font=area.getFont(); int style=font
39、.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 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();int sty
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度礦產(chǎn)資源安全生產(chǎn)承包責(zé)任制合同范本3篇
- 2025年度無人零售店承包經(jīng)營(yíng)及管理服務(wù)合同3篇
- 2025年度電梯安裝工程安全風(fēng)險(xiǎn)評(píng)估與防范協(xié)議4篇
- 2025版建筑抹灰工程技術(shù)創(chuàng)新推廣合同4篇
- 2025年柴油發(fā)電設(shè)備智能化改造與升級(jí)服務(wù)合同4篇
- 2025版民辦學(xué)校教師科研資助與合作合同4篇
- 2025年中國(guó)軟水設(shè)備市場(chǎng)全面調(diào)研及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 23-24年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題及答案歷年考題
- 2024年公司項(xiàng)目部負(fù)責(zé)人安全教育培訓(xùn)試題及完整答案(典優(yōu))
- 2025年測(cè)繪人員信息安全保密協(xié)議樣本4篇
- GB/T 10739-2023紙、紙板和紙漿試樣處理和試驗(yàn)的標(biāo)準(zhǔn)大氣條件
- 《心態(tài)與思維模式》課件
- 物流服務(wù)項(xiàng)目的投標(biāo)書
- C語言程序設(shè)計(jì)(慕課版 第2版)PPT完整全套教學(xué)課件
- 行業(yè)會(huì)計(jì)比較(第三版)PPT完整全套教學(xué)課件
- 值機(jī)業(yè)務(wù)與行李運(yùn)輸實(shí)務(wù)(第3版)高職PPT完整全套教學(xué)課件
- 高考英語語法填空專項(xiàng)訓(xùn)練(含解析)
- 危險(xiǎn)化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化課件
- 巨鹿二中骨干教師個(gè)人工作業(yè)績(jī)材料
- 《美的歷程》導(dǎo)讀課件
- 心電圖 (史上最完美)課件
評(píng)論
0/150
提交評(píng)論