Java课程设计--文本编辑器_第1页
Java课程设计--文本编辑器_第2页
Java课程设计--文本编辑器_第3页
Java课程设计--文本编辑器_第4页
Java课程设计--文本编辑器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 文本编辑器的设计与实现 姓 名: 俞凯 学 号: 2011123094 专业班级: 中新软111 系 (院): 国际学院 设计时间: 2013.6.172013.6.30 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日面向对象课程设计报告 第 26 页,共 26 页1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面

2、向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。2课程设计任务与要求:2.1 文本编辑器的设计与实现:设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。2.2 设计要求:课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。认真完成需求分析,建议采用UML建模技术进行系统的

3、分析设计,在画出系统用例图和类图,并将UML图复制到设计报告中。认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。通过这次设计,要求掌握以下内容:1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现(数组、向量、字符串、链表)4) java.awt、javax.swing中常用标准GUI组件及相应的事件处理5) Java的异常处理机制6) Java的数据库连接技术7) Java的多线程技术与动画制作8) Java的网络编程3课程设

4、计说明书1、 需求分析:简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能2、概要设计:(一)其基本功能包括: 基本的文本操作功能。包括新建,保存,打开,保存。 基本的编辑功能。包括复制,剪贴,粘贴。 基本的格式功能,背景。文本编辑器模块文件打开与保存变更面板颜色字体的设置字形和字体大小的设置剪切 复制 粘贴帮助中【关于主题】 简单的帮助,关于主题

5、。(二)主要的组件包括: 基本的Frame框架; 菜单; 打开文件对话框; 保存文件对话框; 颜色对话框; Choice下拉列表,运来实现字体设置; 简单的帮助框架。(3) 设计流程示意图建立基本框架添加编辑区添加菜单添加对话框完善菜单系统建立下拉列表编辑文字建立框架实现简单帮助3、详细设计:1) 文件打开与保存对话框filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);filedialog_save.setVisible(false);filedialog_load=new FileDialog(th

6、is,"保存文件对话框",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)file

7、dialog_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.getFile(); tofile=new FileWriter(file); out=new BufferedWrit

8、er(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)tryFile file=new File(filedialog_load.getDirectory(), file

9、dialog_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) 文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,在public void actionPerformed(ActionEvent e)里分别用FileW

10、riter()和FileReader()方法实现保存和打开。2) 调用颜色对话框else if(e.getSource()=item5) Color newColor=JColorChooser.showDialog(this,"调色板",area.getBackground(); if(newColor!=null) area.setBackground(newColor); 文本编辑器要实现背景功能可以用javax.swing包中的JColorChooser类的静态方法。Pubic static Color showDialog(Component,String tit

11、le,Color initialColor),其中参数Component指定对话框所依赖的组件,即文本编辑器中的文本区area,title指定对话框的标题“调色板”,initialColor指定对话框返回的初始颜色,即对话框消失后,返回默认值。3) 建立Choice下拉列表实现对字体的设置Choice list;GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName=ge.getAvailableFontFamilyNames();public void itemStat

12、eChanged(ItemEvent e)String name=list.getSelectedItem();Font f=new Font(name,Font.PLAIN,15);area.setFont(f);文本编辑器要实现对字体的设置,我选用了GraphicsEnvironment对象调用String getAvailableFontFamilyNames()方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。4)字形,字体大小部分else if(e.getSource()=item8) /设置字形(常规,倾斜,加粗)Font font=area.getFont()

13、; 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 font=area.getFont(

14、);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=fon

15、t.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)剪切,复制,粘贴部分public void changedUpdate(DocumentEvent e) String s=area.getText();public void removeUpdate(Documen

16、tEvent 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.paste(); 文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理JTextArea的DocumentEvent事件

17、,通过area.cut(),area.copy(),area.paste()方法,点击“编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。6) 帮助中关于主题部分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("这是一个简单的文本编辑器!&qu

18、ot;);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.setBackground(Color.cyan);public void actionPerformed(ActionEve

19、nt e)if(e.getSource()=btn)dispose(); 对于帮助中关于主题部分的实现,我另构建了一个Frame框架,主要是由一个标签及一个按钮构成,由标签输出“这是一个简单的文本编辑器!”,按钮用dispose()方法实现退出功能。7)类图4课程设计成果1、调试分析:(1)关于打开和保存我运用了文件对话框, filedialog_save和filedialog_load以及文件输入输出流来实现,新建功能我选用了area.setText(null)方法.(2)对于剪贴,粘贴,复制的实现则用public void removeUpdate(DocumentEvent e)及 pu

20、blic void insertUpdate(DocumentEvent e).(3)背景的运用也是调用了颜色对话框,需引用import javax.swing.JcolorChooser包用 Color newColor=JColorChooser.showDialog(this,"调色板",area.getBackground()方法;(4)至于字体功能的实现,则是先创建一个下拉列表Choice list,再实现对它的监听 list.addItemListener(this), 最后用public void itemStateChanged(ItemEvent e)方法

21、实现,需注意的是这种方法的实现只对javax.swing包中的组件有效,对于java.awt包中的组件,系统则是采取默认的字体名称.2、用户使用说明:软硬件要求:软件方面:Java开发环境硬件方面:JDK软件抑或是Eclipse软件对硬件没有很高的要求。3、 测试结果:图1:文本编辑器的运行结果:图2文本编辑器中的菜单:图3:字体选择下拉列表:图4:文本编辑器文件对话框(保存文件对话框):图5:选择背景颜色对话框:附录(源代码):import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.JColo

22、rChooser;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;MenuItem itemSave,itemLoad,item1,item2,item3,item4,item5,item

23、6,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 Choice();area=new JTextArea();setVisible(true);GraphicsEnv

24、ironment 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.addItemListener(this); validate();menubar=new MenuBar();menu1=new Me

25、nu("文件");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 Men

26、uItem("剪切");item3=new MenuItem("复制");item4=new MenuItem("粘贴");item5=new MenuItem("背景");item6=new MenuItem("关于主题");item7=new MenuItem("退出");item8=new MenuItem("常规");item9=new MenuItem("倾斜");item10=new MenuItem("加粗&qu

27、ot;);item11=new 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.addActionList

28、ener(this);item3.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.addAction

29、Listener(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(itemLoad);menu1.addSeparator();menu1.add(item7);menu2.add

30、(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();menu3.add(menu6);menu4.add(item6);menu5.add(item8);menu5.addSe

31、parator();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);setMenuBar(menubar);filedialog_save=new FileDialog(this,"

32、保存文件对话框",FileDialog.SAVE);filedialog_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);)

33、;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););public void itemStateChanged(ItemEvent e)String name=list

34、.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)changedUpdate(e);public void actionPerformed(ActionEvent e)if(e.

35、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(area.getText(),0,(area.getText().length(); out.close(); to

36、file.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(); file_reader=new FileReader(file); in=new BufferedReader(f

37、ile_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.copy();else if(e.getSource()=item4)area.paste();else if

38、(e.getSource()=item5) Color newColor=JColorChooser.showDialog(this,"调色板",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();

39、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 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 st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论