JAVA程序设计论文.docx
《JAVA程序设计论文.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计论文.docx(21页珍藏版)》请在冰豆网上搜索。
JAVA程序设计论文
JAVA程序设计论文
课题名称:
多文档编辑器(记事本)
开发人员:
***
指导教师:
**
院系专业:
计算机科学与技术专业
提交日期:
2010-12-18
3.2.3系统的软件实现………………………………………….4
4.3关于其他模块的操作测试……………………………………16
一:
选题依据
经过一个学期JAVA课程的学习,发现JAVA功能强大,应用也很广泛。
虽然之前已经学过一门面向对象语言——C++,但仅仅是皮毛,而且并没有真正领会到面向对象语言的思想和操作,所以想借这次期末论文设计好好深入学习JAVA的应用。
但是自己在计算机语言方面基础薄弱,这次基本算是从头学起,所以就想到从设计一个小型项目做起,当时软件工程代课老师建议我做个小型记事本即类似微软记事本的多文档编辑,并给予一些思路和建议,于是我便动手做了这个小项目。
本程序为JCreator开发的单机小程序,不需要网络环境的支持,结合了面向对象和软件工程的开发思路。
.二:
需求分析
一个文档编辑器的基本模块一般就包含:
文件,编辑,格式,查看等;
基本功能无非是:
新建,打开已有文件,保存,另存为,页面设置,复制粘贴,字体等。
一.文件模块包含新建,打开,保存,另存为,页面设置,打印,退出几项功能。
新建即建立文本,打开就是打开系统已有文件并显示在编辑框图内,保存是把已编辑的文本保存到固定位置,另存为实现保存已编辑文本但当前内容框仍可继续编辑,页面设置实现文本的框图构架。
二.编辑模块包含剪切,复制,查找,粘贴,替换,时间日期等几项功能。
剪切复制粘贴都可以运用鼠标右键操作完成,查找和替换实现文本内容相同部分的替换,同时时间日期一项可以直接点击并在文本显示。
三.格式主要是包含字体模块功能,实现设置字体。
四.查看和帮助栏主要是关于记事本的信息。
三:
系统分析
为了使系统具备上述所具备的功能,应该有一个具体的设计思路,并且脑海中应该有整体的系统架构,在经过短暂的资料查找并结合实际运用操作,系统功能的具体实现步骤及界面设计逐渐浮出水面。
在对界面设计及系统需要实现的功能有了大致的框架后开始了具体开发该系统的阶段。
3.1系统开发环境
该“点名系统”是在WindowsXP系统环境下,运用Sun公司提供的JDK及JCreator软件联合开发出来的。
JDK是JavaDevelopmentKit的缩写,JCreator是适合初学者的一款开发工具。
3.2系统功能实现
3.2.1系统界面
界面包含需求分析中的各个模块。
3.2.2系统非功能性需求
可靠性:
当输入为空或不合规范时提示错误
安全性:
当未保存但选择删除时要提示用户
3.2.3系统软件实现
1.软件的功能结构
2.各软件模块的解释和代码实现
◆主模块的代码实现
ta=newJTextArea();
sta=newJScrollPane(ta);
mainFrame=newJFrame("多文档编辑器");
mBar=newJMenuBar();
mainFrame.setJMenuBar(mBar);
file=newJMenu("文件(F)");
file.setMnemonic('F');
edit=newJMenu("编辑(E)");
edit.setMnemonic('E');
format=newJMenu("格式(O)");
format.setMnemonic('O');
view=newJMenu("查看(V)");
view.setMnemonic('V');
help=newJMenu("帮助(H)");
help.setMnemonic('H');
mBar.add(file);
mBar.add(edit);
mBar.add(format);
mBar.add(view);
mBar.add(help);
◆文件模块的代码实现
New=newJMenuItem("新建(N)");
New.setMnemonic('N');
open=newJMenuItem("打开(O)");
open.setMnemonic('O');
save=newJMenuItem("保存(S)");
save.setMnemonic('S');
saveAs=newJMenuItem("另存为(A)...");
saveAs.setMnemonic('A');
exit=newJMenuItem("退出(X)");
exit.setMnemonic('X');
file.add(New);
file.add(open);
file.add(save);
file.add(saveAs);
file.add(exit);
◆编辑模块的代码实现
cut=newJMenuItem("剪切(U)");
cut.setMnemonic('U');
copy=newJMenuItem("复制(C)");
copy.setMnemonic('C');
paste=newJMenuItem("粘贴(V)");
paste.setMnemonic('V');
delete=newJMenuItem("删除(L)");
delete.setMnemonic('L');
find=newJMenuItem("查找");
replace=newJMenuItem("查找和替换");
edit.add(cut);
edit.add(copy);
edit.add(paste);
edit.add(delete);
edit.add(find);
edit.add(replace);
◆格式.帮助.查看在菜单栏的显示实现
font=newJMenuItem("字体(F)...");
font.setMnemonic('F');
state=newJMenuItem("状态栏(S)");
state.setMnemonic('S');
head=newJMenuItem("帮助主题(H)");
head.setMnemonic('H');
aboutNotepad=newJMenuItem("关于记事本(A)");
aboutNotepad.setMnemonic('A');
format.add(font);
view.add(state);
help.add(head);
help.add(aboutNotepad);
file.insertSeparator(4);
help.insertSeparator
(1);
四:
测试分析
4.1关于文件模块的操作测试
文件模块的新建功能选择后便可直接在文本框输入内容,由于打开记事本便可直接进行内容输入,所以新建功能的测试省略;
选择文件模块的打开功能,选择目录文档,单击后便可在文本框显示原文档内容,本测试用例是打开桌面JAVA文件夹中的一个java程序源代码,操作完成后,原代码内容在文本框显示,选择退出项可以直接退出该编辑器。
(保存和另存为功能在后面模块的编辑过程中进行测试)
选择文件模块中的打开选项:
显示目录文件,选择你想要打开的文档,点击打开:
文档内容在文本区域显示:
4.2关于编辑模块的相关操作和测试
选中上一步测试中文本的任意一部分内容,选择编辑模块中的剪切命令,则选中部分即被贱妾消失,然后把鼠标光标指向想要内容放置的位置,选择粘贴项命令即可在制定位置显示刚才剪切的内容,本例是选中最后三行粘贴到第六行语句后面显示的结果,复制命令的实现类似;选择查找选项,输入你要查找的内容,如果文本中存在,则查找到的字符会以阴影选中形式出现;选择查找和替换功能,输入要查找以及要替换成的内容,则文本查找到的内容就会替换成对应内容。
选中要剪切的内容,最后三行,选择剪切项:
把鼠标指向第六行末尾,选择粘贴项:
最后三句语句在第六行末尾显示,剪切粘贴操作成功:
选择查找选项,输入要查找的内容——showMessage:
点击查找,可发现文本内容中的showMessage被选中:
选择查找和替换选项,输入要替换的文本——Square和替换成的文本——mianji:
点击替换按钮,可发现文本中第二行的Square被替换成了mianji:
选择文件模块中的另存为功能,可把修改后的文本保存在某个路径目录中,本例选择保存在我的文档中:
输入文件名exzample,点击保存:
打开我的文档,发现刚才保存的exzample文件存在(保存时默认为所有文件类型):
4.3关于其他模块的操作测试:
格式界面:
查看界面:
帮助界面:
帮助模块中选择关于记事本,显示如下:
五:
系统缺点
由于本人水平有限,本软件只能实现文本编辑的一些基本功能,更细化的功能并不能实现,例如字体设置以及文本修改后提示是否保存功能,还需要完善与改进。
六:
个人总结
在大家看来,编写个记事本,在JAVA软件开发中应该算是挺基础和简单的吧,可是这项看似简单的小软件却着实耗费了我不少的精力,连续好几个星期都是没课便往创新实验室去。
由于基础不太好,对于面向对象语言的了解和掌握也很生疏,所以首先便是从课本入手,先试着编写课本上一些小的程序,以培养对JAVA语言应用的感觉,然后确定选题后才有针对性的去看一些用户界面程序设计的一些书和资料,本软件开发主要用的是菜单实现,对鼠标事件运用较少。
在程序编写的过程中,文件操作的一些功能和编辑操作里的剪切复制粘贴先实现了,查找以及替换的功能是隔了一周之后才加上那过去的,但是由于水平有限,尽管查了不少资料也看了网上别人写的记事本程序,可是字体和提示是否保存的功能一直未能实现,这也是本次设计的一项缺憾。
当然,在做这次论文的过程中,我也发现了JAVA语言的简单和多用的优点,慢慢产生了兴趣,因为临近期末忙于复习,没能深入和广泛学习,准备假期好好学习这门语言,然后逐步完善这款软件并试着运用JAVA编写复杂程序。
这次论文和代码编写虽然是我个人完成,但其实我期间请教过好几个基础不错的同学以及高年级学长,在这里,表示感谢。
虽然这次JAVA程序设计还有很多地方需要改进,但是我的确用心去做了,从中我收获的不止是JAVA的知识,还有严谨,认真,独立和自信,相信在以后的努力中,我会把这门语言学得很好!
七:
参考文献
【1】雍俊海编著《Java程序设计教程》(第2版)清华大学出版社2007.8
【2】周晓聪,面向对象程序设计与Java语言,北京,机械工业出版社,2004.3
【3】胡伏湘,雷军环,java程序设计实用教程清华大学出版社2005,7
【4】袁然,郑自国JAVA案例开发集锦电子工业出版社2005.9
附录:
1.关于记事本
顾名思义,记事本原指用来记录各类事情的小册子。
英文名称为:
WORDPAD或NOTEPAD。
现在一般特指Windows操作系统附带的一个简单的文本编辑、浏览软件notepad.exe。
记事本只能处理纯文本文件,但是,由于多种格式源代码都是纯文本的,所以记事本也就成为了使用最多的源代码编辑器。
它只具备最基本的编辑功能,所以体积小巧,启动快,占用内存低,容易使用。
“记事本”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。
下面我们就来看看记事本吧。
相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:
新建,保存,打印,查找,替换这几个功能。
但是“记事本”却拥有一个Word不可能拥有的优点:
打开速度快,文件小。
我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同,所以对于大小在64KB以下的纯文本的保存最好还是采用记事本。
、记事本另一项不可取代的功能是:
可以保存无格式文件。
你可以把记事本编辑的文件保存为:
“.html”,“.java”,“.asp”等等任意格式。
这使得“记事本”又找到了一个新的用途:
作为程序语言的编辑器。
翻开任何一本介绍一门编程语言的入门教材,里面都会建议学生在记事本中编写源程序。
2关于JAVASwing
当Java1.0刚刚出现时还没有swing,当时的GUI基本编程库,sun取名叫AWT(AbstractWindowTookit),基本AWT库处理用户界面 的方法是将这些元素的创建行为交给,底层操作系统的GUI工具箱进行处理,来实现WORA的目的.而因为种种原因,不同的OS之间存在差异,使得AWT界面库存在许多bug.1996年sun同netscape通力合作创建了新的库取名Swing。
Swing是日前Java不可或缺的窗口工具组,在Swing尚未推出之前,要编写一个Java窗口程序必须使用AWT(AbsbactWlndowTooht)的包,AWT最大的缺点在于使用上相当没有弹性,例如您无法仔细地改变组件的外观。
这个原因主要是AWT中大部分的组件均含有nativecode,窗口中的每个组件都可能与操作系统相互沟通(不管是输入或输出),而我们使用的操作系统并不是由Java程序所写成,因此要与操作系统相互沟通必须使用与操作系统兼容的程序语言,产生所谓的对等(Peer)组件,这样的做法所需付出的代价除了没有弹性外,也可能耗费大量的系统资源,因为建立一个AWT组件就等于建立一个对等对象,然后由此对等对象直接跟操作系统沟通,这样的做法太没有效率。
Swing中只有JFrame、JDialog、Jwindow与JApplet不是纯Java所写成,主要是窗口画面总要有跟操作系统沟通的渠道,这样才知道用户是不是敲了键盘、按了鼠标或关闭了窗口。
当您在JFrame上绘制了100个JTextField组件时,实际上只会产生一个对等组件,也就是由JFrame所产生,利用这个唯一的对等组件来跟操作系统相互沟通,这样就能节省相当多的系统资源。
再者,不同的操作系统所对应的对等组件可能有不同的效果,减少对等物的产生将利于系统的稳定度。
Swing是Java的基础类,是JFC的一部分,完整的JFC是很巨大的.包括的组件也很多。
其还拥有以下三个优点:
1.Swing拥有一个丰富、便捷的用户界面元素集合。
2.Swing对底层平台依赖的很少,因此与平台相关的bug很少。
3.Swing给予不同平台的用户一致的感观效果。
2.源代码:
见附件
3.说明:
文档中框图模糊均为其他工具截图而非键盘屏幕截图。