ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:143.83KB ,
资源ID:3045187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3045187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(虚拟的java编辑器课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

虚拟的java编辑器课程设计报告.docx

1、虚拟的java编辑器课程设计报告 虚拟的Java编辑器设计报告一、需求分析此次课程设计名称为JAVA编辑器。需要设计一个图形界面的文本编辑器,能编辑Java语言源程序,界面和功能类似Editplus。演示程序为计算机和用户的对话形式执行,即在计算机的终端显示图形界面的文档编辑器,然后用户就可以实现编辑,保存等像记事本一样的功能。(1)打开以有文件,保存编辑文件,退出编辑器并提醒保存;(2)查找编辑区中的字符串,用已知字符串替换查找的字符串;(3)显示文件的存取路径;(4)剪切,复制,粘贴,删除等;(5)改变文本区字体的颜色,字体大小和形状的功能;(6)关键字显示蓝色、类库类名显示红色。二. 设

2、计1. 设计思想Java编辑器是用来编写java程序的源代码。Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。图形界面的实现:就选择了swing来完成实现,在选择组件上,文本编辑区就选用了JTextPane作为主要的部件。由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。在设计类的时候,考虑到简单明了,一个主类,一个默认属性myfr类,染色类SyntaxHighlighter作为程序的整体框架,所有的对象和方法都是在默认属性类和染色类中创建和实现的,以及为各组件注册事

3、件监听程序也是在默认属性类染色类中实现的。本程序主类完成对象的实例化及显示。2. 功能设计本程序涉及到了对图形用户界面的设计与实现和菜单的设计与实现。用户可以通过此编辑器对java文件进行文字的复制、剪切、粘贴、删除、查找、替换、时间的插入、设置字体颜色和关键字、类库名着色等。本程序主要有以下3个模块组成:(1)主体模块由窗口、功能菜单、文本框组成。为用户选择编辑的功能提供了简单、方便的界面。Java的窗口由JFrame类生成,我们可以在创建的空白窗口上添加组件。菜单是图形用户界面的重要组成部分,是由菜单条(MenuBar)、菜单(Menu)、菜单项(MenuItem)和复选菜单项(Check

4、box MenuItem)等对象组成。(2)功能模块有文件的新建、打开、保存、另存为和退出,文字的复制、剪切、粘贴、删除、查找、替换、以及时间的插入,为用户提供了java编辑器的基础功能。 (3)染色模块关键字显示蓝色,类库名显示红色。实现高亮子的核心方法StyledDocument.setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)3. 详细设计本设计主要是模仿windows记事本界面,主要的难点是关键字染色算法和查找替换算法。其他的部分相对简单,主要就是一些容器组件的组合,布局的设置

5、。主要的功能都在myfr类中实现的。Java中提供的多行文本编辑器有: JTextComponent, JTextArea, JTextPane, JEditorPane等, 都可以使用但是因为语法着色中文本要使用多种风格的样式, 所以这些文本编辑器的document要使用StyledDocument. JTextArea使用的是PlainDocument, 此document不能进行多种格式的着色.JTextPane, JEditorPane使用的是StyledDocument, 默认就可以使用.为了实现语法着色, 可以继承自DefaultStyledDocument, 设置其为这些文本编辑

6、器的documet, 或者也可以直接使用JTextPane, JEditorPane来做. 为了方便, 这里就直接使用JTextPane了(1)主类 class ok 实例化初始化窗口 (2)主窗口体类 class myfr 字体类 class MyFont (3)染色类class SyntaxHighlighter (4)鼠标右键弹出菜单类class handlemouse (5)帮助主题类class myhelp(6)关闭窗口XXX类class xxx(7)关闭帮助主题窗口类class xxxhelp三. 调试及测试 1. 调试过程中遇到的主要问题及解决方法 开始把染色类写在myfr中,结

7、果出现继承错误,只好把染色类写在myfr之外,通过引用实现类与类联系。在开始设置字体颜色是出现问题,关键字可着色,不能设置字体颜色,最后发现时没有监听器的位置出现了问题! 2. 对设计和编码的回顾讨论和分析 在本设计中没有用数据库,在直接用哈希表定义,所以只能简单定义几个常用的关键字、类库名,能说明功能实现就可以,这也是可以该进的地方。设计的功能有限,只能实现简单的文本编辑,没有编译,运行等等功能,这也是能力有限。 3.测试数据集 (1)主体模块定义一个myfr类对象,完成主类的实例化显示。(2)功能模块(A)文件(新建、打开、保存、另存为、退出)功能图如下:(B)编辑(复制、剪切、粘贴、删除

8、、查找、查找下一个、替换、替换下一个、全选、日期/时间)功能图如下:(C)格式(字体、字体颜色)功能图如下:(D)格式风格(状态栏)功能图如下:(E)帮助(帮助主题、关于)功能图如下:(F)关键字显示蓝色、类库类名显示红色功能图如下:四、经验和体会。通过此次成功的实现了Java文本编辑器的设计与编写,我进一步巩固、加深了对专业课程JAVA语言教程的基础理论知识的理解,使我熟练的掌握了JAVA语言的输入输出流、数据库连接的使用,灵活运用各种类库。此次利用所学知识,开发小型应用系统我掌握了如何运用JAVA语言编写调试应用系统程序,并且训练了我独立开发应用系统,进行数据处理的综合能力。同时,对于给定

9、的设计题目,如何对其进行分析,理清思路,并给出相应的数学模型,也是一项很好的考验。通过对这个课题的学习,我发现Java语言作为一种新兴的编辑语言,优势很明显,整个程序的结构很清晰,让人一目了然。而且,程序的编辑、修改、移植性也很强,可以通过对功能模块的添加,增加程序的实用性,例如查找、替换、打印等等,这些事今后可以进一步研究发展的方向。通过对这个课题的训练,使我基本掌握了Java编程的基础知识,主体模块与功能模块的结合技巧、方法,提高了我的自学能力,也锻炼了我分析问题、解决问题的能力!此次课程设计给我印象最深的就是,在程序中非常容易出小的毛病,而这些小毛病往往浪费大量的时间而不得其解,让人烦恼

10、至极。比如,在主方法体中忘记定义一些变量,导致程序运行时程序也报出大量错,有时在鼠标随便定位处不小心按下一个字符,结果运行报错后出现意外错误,有时忘记保存等等此后让我懂得写程序一定要仔细,要认真写清每一行代码。附录:主要源程序import java.awt.*;import java.awt.event.*;import java.awt.Color;import java.io.*;import java.util.*;import java.util.HashSet;import java.util.Set;import java.awt.datatransfer.*;import jav

11、a.awt.event.*;import java.text.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.text.Caret;import javax.swing.JFrame;import javax.swing.JTextPane;import javax.swing.SwingUtilities;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;import javax.swing.

12、text.BadLocationException;import javax.swing.text.Document;import javax.swing.text.Style;import javax.swing.text.StyleConstants;import javax.swing.text.StyledDocument;import javax.swing.undo.*;public class okpublic static void main(String args)myfr fr=new myfr (我的java编辑器);fr.setSize(600,400);/myfr主窗

13、体类/class myfr extends JFrame implements ActionListener String str,strnext,path,fname; /部分变量的声明JPanel mainpane; JFileChooser choose = new JFileChooser(); /文件对话框Dialog find,replace; /find为查找对话框,replace对话框JTextField findtxt,repltxt; /find为查找对话框的输入文本区,replace对话框的输入文本区Font newfont;JButton findenter,replb

14、,but; /find为查找对话框,replace对话框的确定按钮JLabel state=new JLabel(java编辑器-未命名文档); /状态栏JTextPane txt1; /主输入文本区File newfiles;JPopupMenu popm; /弹出菜单声明JMenu m1,m2,m3,m4,m5,m6; /各菜单项JMenuItem m61,m62,m26,m271,m34,m51,m52,m53,m54,p_copy,p_cut,p_paste,p_del,font;int startp,endp,nexttemp,newstartp,newendp; /查找替换时所用的

15、临时变量JToolBar toolbar = new JToolBar(); /工具条 private Set keywords;private Set classwords;private Style keywordStyle;private Style classwordStyle;private Style normalStyle;myfr(String sss) /构造函数开始super(sss);JMenuBar mb=new JMenuBar();fname=null; /初始文件名为空 findenter=new JButton(确定);findenter.addActionListener(this); /声明对话框中上确定按钮,并注册事件replb=new JButton(确定);replb.addActionListener(this)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1