【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了:【面向对象课程设计】基于JAVA的记事本编辑器(下载后送源代码) - 毕业设计绩等信息,祝愿广大网友取得需要的信息,参考学习。
计算机工程学院 课程设计报告设计名称: 面向对象课程设计选题名称: 文本编辑器级: D 软件 081系 (院): 计算机工程学院设计时间: 2010.6.142010.6.27设计地点: 软件实验室、教室指导教师评语: 成绩: 签名: 年 月 日 面向对象课程设计报告 第 2 页,共 27 页1.课程设计目的 《面向对象程序设计》是一门实践性很强的
计算机专业基础课程,课程设计是
学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用
Java 语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际
问题的能力,提高学生的应用能力。
2.课程设计任务与要求: 2.1 文本编辑器 设计一个类似于 Windows 记事本Notepad的
Java 程序。
可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。
2.2 设计要求: 课程设计可选用 Eclipse、JBuilder、NetBeans 等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。
认真完成需求分析,建议采用 UML 建模技术进行系统的分析设计,在画出系统用例图和类图,并将 UML 图复制到设计报告中。
认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、
设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。
通过这次设计,要求掌握以下内容: 1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2) 类、包、接口的定义与使用 3) 常用工具类与算法的实现(数组、向量、字符串、链表) 4)
java.awt、javax.swing 中
常用标准 GUI 组件及相应的事件处理 5)
Java 的异常处理机制 6)
Java 的数据库连接技术 7)
Java 的多线程技术与动画制作 8)
Java 的
网络编程 面向对象课程设计报告 第 3 页,共 27 页3.课程设计说明书 1、需求分析 简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。
能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。
文件操作能够实现新建、保存、打开
文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能2、概要设计(一)其基本功能包括:1)基本的文本操作功能。
包括新建,保存,打开,保存。
2)基本的编辑功能。
包括复制,剪贴,粘贴。
3)基本的格式功能,背景。
4)简单的帮助,关于主题。
(二)主要的组件包括:1) 基本的 Frame 框架;2) 菜单;3) 打开文件对话框;4) 保存文件对话框;5) 颜色对话框;6) Choice 下拉列表,运来实现字体设置;7) 简单的帮助框架。
(三)设计示意图 面向对象
课程设计报告 第 4 页,共 27 页 建立基本框架 添加编辑区 添加菜单 添加对话框 完善菜单
系统 建立下拉列表编辑文字 建立框架实现简单帮助 3、详细设计1) 文件打开与保存对话框 filedialog_savenew FileDialogthisquot保存文件对话框quotFileDialog.SAVE filedialog_save.setVisiblefalse filedialog_loadnew FileDialogthisquot保存文件对话框quotFileDialog.LOAD filedialog_load.setVisiblefalse filedialog_save.addWindowListenernew WindowAdapter public void windowClosingWindowEvent e filedialog_save.setVisiblefalse filedialog_load.addWindowListenernew WindowAdapter 面向对象课程设计报告 第 5 页,共 27 页 public void windowClosingWindowEvent e filedialog_load.setVisiblefalse public void actionPerformedActionEvent e ife.getSourceitemSave filedialog_save.setVisibletrue iffiledialog_save.getFilenull try File filenew Filefiledialog_save.getDirectory filedialog_save.getFile tofilenew FileWriterfile outnew BufferedWritertofile out.writearea.getText0area.getText.length out.close tofile.close catchIOException e1 else ife.getSourceitemLoad filedialog_load.setVisibletrue area.setTextnull String s iffiledialog_load.getFilenull tryFile filenew 面向对象课程设计报告 第 6 页,共 27 页 Filefiledialog_load.getDirectory filedialog_load.getFile file_readernew FileReaderfile innew BufferedReaderfile_reader whilesin.readLinenull area.appendsn in.close file_reader.close catchIOException e1 文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。
在 先建立打开和保存对话框, publicvoid actionPerformedActionEvent e里分别用 FileWriter和 FileReader方法实现保存和打开。
2) 调用颜色对话框 else ife.getSourceitem5 Color newColorJColorChooser.showDialogthisquot调色板quotarea.getBackground ifnewColornull area.setBackgroundnewColor 文本编辑器要实现背景功能可以用 javax.swing 包中的 JColorChooser 类的静态方法。
Pubic static ColorshowDialogComponentString titleColor initialColor,其中参数 Component 指定对话框所依赖的组件,即文本编辑器中的文本区 area,title 指定对话框的标题“调色板”,initialColor 指定对话框返回的初始颜色,即对话框消失后,返回默认值。
3) 建立 Choice 下拉
列表实现对字体的设置 Choice list GraphicsEnvironment geGraphicsEnvironment.getLocalGraphicsEnvironment String fontNamege.getAvailableFontFamilyNames 面向对象课程设计报告 第 7 页,共 27 页 public void itemStateChangedItemEvent e String namelist.getSelectedItem Font fnew FontnameFont.PLAIN15 area.setFontf 文 本 编 辑 器 要 实 现 对 字 体 的 设 置 , 我 选 用 了 GraphicsEnvironment 对 象 调 用 String getAvailableFontFamilyNames方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。
4)字形,字体大小部分 else ife.getSourceitem8 //设置字形(常规,倾斜,加粗) Font fontarea.getFont int stylefont.getStyle stylestyle0 area.setFontnew Fontquotquotstylefont.getSize else ife.getSourceitem9 Font fontarea.getFont int stylefont.getStyle stylestyle2 area.setFontnew Fontquotquotstylefont.getSize else ife.getSourceitem10 Font fontarea.getFont int stylefont.getStyle stylestyle1 area.setFontnew Fontquotquotstylefont.getSize else ife.getSourceitem11 //设置字体大小 面向对象课程设计
报告 第 8 页,共 27 页 Font fontarea.getFont int stylefont.getStyle area.setFontnew Fontfont.getNamestyle12 else ife.getSourceitem12 Font fontarea.getFont int stylefont.getStyle area.setFontnew Fontfont.getNamestyle24 else ife.getSourceitem13 Font fontarea.getFont int stylefont.getStyle area.setFontnew Fontfont.getNamestyle36 5)剪切,复制,粘贴部分 public void changedUpdateDocumentEvent e String sarea.getText public void removeUpdateDocumentEvent e changedUpdatee public void insertUpdateDocumentEvent e changedUpdatee public void actionPerformedActionEvent e else ife.getSourceitem2 面向对象课程设计报告 第 9 页,共 27 页 area.cut else ife.getSourceitem3 area.copy else ife.getSourceitem4 area.paste 文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理 JTextArea 的 DocumentEvent 事件,通过 area.cut,area.copy,area.paste方法,点击“编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。
6) 帮助中关于主题部分 else ife.getSourceitem6 zhuti ztnew zhuti class zhuti extends Frame implements ActionListener Button btn Label lab zhuti setLayoutnull btnnew Buttonquot确定quot labnew Labelquot这是一个简单的文本编辑器quot addbtn addlab btn.addActionListenerthis setBounds200200250150 面向对象课程设计报告 第 10 页,共 27 页 setVisibletrue lab.setBounds20 6022030 lab.setFontnew Fontquot楷体quotFont.BOLD16 lab.setBackgroundColor.cyan btn.setBounds1001005030 btn.setBackgroundColor.cyan public void actionPerformedActionEvent e ife.getSourcebtn dispose 对于帮助中关于主题部分的实现,我另构建了一个 Frame 框架,主要是由一个标签及一个按钮构成,由标签 ,按钮用 dispose方法实现退出功能。
输出“这是一个简单的文本编辑器”7)类图面向对象课程设计报告 第 11 页,共 27 页 面向对象课程设计报告 第 12 页,共 27 页4.课程设计成果 4、调试分析 1关于打开和保存我运用了文件对话框 filedialog_save 和 filedialog_load 以及文件输入输出流来实现新建功能我选用了 area.setTextnull方法. 2 对 于 剪 贴 粘 贴 复 制 的 实 现 则 用 public void removeUpdateDocumentEvent e 及 public voidinsertUpdateDocumentEvent e. 3 背 景 的 运 用 也 是 调 用 了 颜 色 对 话 框 需 引 用 import javax.swing.JcolorChooser 包 用 ColornewColorJColorChooser.showDialogthisquot调色板quotarea.getBackground方法 4 至 于 字 体 功 能 的 实 现 则 是 先 创 建 一 个 下 拉 列 表 Choice list 再 实 现 对 它 的 监 听list.addItemListenerthis 最后用 public void itemStateChangedItemEvent e方法实现需注意的是这种方法的实现只对 javax.swing 包中的组件有效对于
java.awt 包中的组件系统则是采取默认的字体名称. 5、用户使用说明 软硬件要求:
软件方面:
Java 开发环境 硬件方面:JDK 软件抑或是 Eclipse 软件对硬件不是有很高的要求。
6、测试结果图 1:文本编辑器的运行结果: 面向对象课程设计报告 第 13 页,共 27 页图 2 文本编辑器中的菜单: 面向对象课程设计报告 第 14 页,共 27 页图 3:字体选择下拉列表图 4:文本编辑器文件对话框(保存文件对话框): 面向对象课程设计报告 第 15 页,共 27 页图 5:选择背景颜色对话框: 面向对象课程设计报告 第 16 页,共 27 页图 6:简单的帮助对话框: 附录(程序
代码)import
java.awt.import
java.awt.event.import
java.io.import javax.swing.JColorChooserimport javax.swing.import javax.swing.event.class Window extends Frame implements ActionListenerItemListenerDocumentListener FileDialog filedialog_savefiledialog_load MenuBar menubar Menu menu1menu2menu3menu4menu5menu6 MenuItemitemSaveitemLoaditem1item2item3item4item5item6item7item8item9item10item11item12item13item14item15 Choice list JTextArea area BufferedReader in FileReader file_reader BufferedWriter out FileWriter tofile JScrollPane scrollpane WindowString s 面向对象课程设计报告 第 17 页,共 27 页 supers setSize600400 listnew Choice areanew JTextAreasetVisibletrue GraphicsEnvironment geGraphicsEnvironment.getLocalGraphicsEnvironment String fontNamege.getAvailableFontFamilyNames forint i0iltfontName.lengthi list.addfontNamei addlistquotNorthquot addareaquotCenterquot list.addItemListenerthis validate menubarnew MenuBarmenu1new Menuquot文件quot menu2new Menuquot编辑quotmenu3new Menuquot格式quot menu4new Menuquot帮助quotmenu5new Menuquot字形quot menu6new Menuquot字体大小quot itemSavenew MenuItemquot保存quot itemLoadnew MenuItemquot打开quot item1new MenuItemquot新建quot item2new MenuItemquot剪切quot item3new MenuItemquot复制quot item4new MenuItemquot粘贴quot item5new MenuItemquot背景quot item6new MenuItemquot关于主题quot item7new MenuItemquot退出quot item8new MenuItemquot常规quot item9new MenuItemquot倾斜quot item10new MenuItemquot加粗quot item11new MenuItemquot12quot 面向对象课程设计报告 第 18 页,共 27 页item12new MenuItemquot24quotitem13new MenuItemquot36quotitem14new MenuItemquot查找quotitem15-new MenuItemquot替换quotitemSave.addActionListenerthisitemLoad.addActionListenerthisitem1.addActionListenerthisitem2.addActionListenerthisitem3.addActionListenerthisitem4.addActionListenerthisitem5.addActionListenerthisitem6.addActionListenerthisitem7.addActionListenerthisitem8.addActionListenerthisitem9.addActionListenerthisitem10.addActionListenerthisitem11.addActionListenerthisitem12.addActionListenerthisitem13.addActionListenerthisitem14.addActionListenerthisitem15.addActionListenerthisarea.getDocument.addDocumentListenerthismenu1.additem1menu1.addSeparatormenu1.additemSavemenu1.addSeparatormenu1.additemLoadmenu1.addSeparatormenu1.additem7menu2.additem2me.