完整版Java毕业课程设计文档Word下载.docx
《完整版Java毕业课程设计文档Word下载.docx》由会员分享,可在线阅读,更多相关《完整版Java毕业课程设计文档Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
前言
Java
的前身是
Oak,它一开始只是被应用于消费性电子产品中。
后来它的开
发者们发现它还可以被用于更大范围的
Internet
上。
1995年,Java
语言的名字
从Oak编程了
Java。
1997年
J2SE1.1
发布。
1998
年
J2SE1.2
发布,标志
Java2
的诞生。
十多年来,
编程语言及平台成功地运用在网络计算及移动等各个
领域。
Java
的体系结构由
语言、Javaclass
、JavaAPI、Java
虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。
Java的平台标准有JavaME,JavaSE和JavaEE。
Java发展到今天,它的卓越
成就及在业界的地位毋庸置疑。
目前在众多的支持
的开发工具中主要的
7
有
JavaDevelopment
Kit
,NetBeans,Jcreator
,JBuilder
,JDeveloper
和
Eclipse
等。
其中
JavaDevelopmentKit
简称
JDK是大多开发工具的基础。
以上的每种
开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发
内容和软硬件环境等因素来选择一种合适的开发工具。
在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所
以选择了适合初学者使用的JCreator开发工具。
1需求分析
1.1需求分析
现在网络上各种文本编辑器数不胜数,有
EmEditor
,UEStudio
,
GridinSoft
Notepad
,Notepad++,win32pad
,SkimEdit
,UniRed,xint
。
功能也是应有尽有,有能改变字体的,有能改变文字颜色的。
但是,这
些软件又存在各种各样的瑕疵或问题:
有的文件体积相对于一般文字编
辑来说太大;
有的功能太繁杂,使初级使用者一时难以掌握。
仅从日常
应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程
序设计就是依照这样一种使用需要设计了一个简单的文本编辑器程序。
1.2功能设计
本程序要构建的记事本程序参照了Windows操作系统的记事本工
具,其功能有以下几个方面:
1.菜单中有“文件”,“编辑”,“格式”“帮助”三个主菜单。
2.“文件”有“打开”“保存”“另存为”“退出”四个子菜单:
分别用于打开文件,保存文件,另存为文件,退出记事本。
3.“编辑”中有“撤销”“剪切”“复制”“粘贴”“刷除”五个子菜单:
用于撤销上一步操作,剪切文字,复制文字,粘贴文字,刷出文字。
4.“格式”中有“自动换行”子菜单:
用来对文字的自动换行;
5.“帮助”菜单中有“关于”子菜单关于文本编辑器程序的制作等信息
2.概要设计
2.1程序设计思路
在本程序中,设计了一个菜单栏和文本内容区和状态栏。
设计过程中用到了
JScollPane,JLable,JMenu,JTextArea,JFileChooser,UndoManager等。
JMenu
用来制作菜单,菜单包括“文件”“编辑”“格式”“帮助”。
JTextArea主要用来
输入文本,JLable主要用来创建状态栏。
2.2程序运行界面
2.3程序相关说明
整个记事本分为2快:
菜单栏和文本输入区和状态栏。
本程序中首先定义
一个JNotePadUI类继承JFrame作为最底层容器。
①textarea为程序文本输入区;
②MenuBar为菜单栏;
③要想记事本完成需求分析中相应的功能,还必须添加事件监听器。
事件监
听器不仅要添加在菜单栏和内容输入区,还需加在容器中。
本程序中ActListener
现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事
实
件。
另外,还用来WindowListener来监听处理容器关闭触发的事件,
承了WindowsAdapter类并覆盖了WindowsClosing方法。
WindowListener
继
3.程序详细设计与分析
3.1.初始化组件
JMenuBarmenuBar=newJMenuBar();
textArea=newJTextArea();
stateBar=newJLabel("
未修改"
);
3.2.构建菜单栏及其下拉菜单及其事件监听
menuOpen.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente){openFile();
}
menuSave.addActionListener(
publicvoidactionPerformed(ActionEvente){saveFile();
menuSaveAs.addActionListener(
publicvoidactionPerformed(ActionEvente){saveFileAs();
menuQuit.addActionListener(
publicvoidactionPerformed(ActionEvente){closeFile();
menuUndo.addActionListener(
publicvoidactionPerformed(ActionEvente){undo();
textArea.getDocument().addUndoableEditListener(undomg);
menuCut.addActionListener(
publicvoidactionPerformed(ActionEvente){cut();
menuCopy.addActionListener(
publicvoidactionPerformed(ActionEvente){copy();
menuPaste.addActionListener(
publicvoidactionPerformed(ActionEvente){paste();
menuDelete.addActionListener(
publicvoidactionPerformed(ActionEvente){delete();
menuWrapline.addActionListener(
publicvoidactionPerformed(ActionEvente){wrapline();
menuAbout.addActionListener(
publicvoidactionPerformed(ActionEvente){
显示对话框
JOptionPane.showOptionDialog(null,
"
程序名称
程序设计
:
\n
记事本\n"
+
黄峰\n"
简介:
一个简单的文字编辑器
\n"
可作为验收
的实现对象
"
关于
JNotePad"
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,null,null);
3.3.异常处理
在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,
就需要在程序中用到Java异常处理机制。
本程序中选用的异常处理机制是try,
catch。
捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch
代码块。
privatevoidsaveFile(){
Filefile=newFile(getTitle());
if(!
file.exists()){
saveFileAs();
else{
try{
BufferedWriterbuf=
newBufferedWriter(
newFileWriter(file));
buf.write(textArea.getText());
buf.close();
stateBar.setText("
catch(IOExceptione){
JOptionPane.showMessageDialog(null,e.toString(),
写入文件失败"
JOptionPane.ERROR_MESSAGE);
4.测试分析
点击“编辑”运行情况
“文件”菜单中的“打开”对话框
“帮助”的“关于”对话框
5.课程设计总结
经过差不多两个星期的努力,基本上完成我的
Java课程设计—简单的文本编辑
器程序,也基本上实现了我在需求分析时所预期的功能。
通过这次的课程设计,使将
我从书本上学习到的理论知识用到了实践上,
从而进一步巩固和丰富了我所学过的知
识,让我更深层次地认识到
Java及其强大的功能。
同时,做这门课程设计也进一步
加强了我的动手能力。
为了完成好这次课程设计,我提前做了较多的准备,一边上网
查找相关资料,另一方面查阅相关书籍。
在这过程中也无形中锻炼了我的思维分析、
遇到问题及想方设法通过各种途径解决问题的能力。
但是,设计过程中也存在一些问
题,本来一开始想给这个文本编辑器程序加上工具栏快捷按钮,
以及添加其他具体功
能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。
6.参考文献
[1].张利国等编著,Java实用案例教程,清华大学出版社,2003.10
[2].何梅等编著,JavaApplet,清华大学出版社,2003.6
[3].张白一崔尚森编著,面向对象程序设计—Java,西安电子科技大学出版社,2006.1
7.附录
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
importjavax.swing.undo.*;
publicclassJNotePadUIextendsJFrame{
privateJMenuItemmenuOpen;
privateJMenuItemmenuSave;
privateJMenuItemmenuSaveAs;
privateJMenuItemmenuQuit;
privateJMenueditMenu;
privateJMenuItemmenuUndo;
privateJMenuItemmenuCut;
privateJMenuItemmenuCopy;
privateJMenuItemmenuPaste;
privateJMenuItemmenuDelete;
privateJMenuformmenu;
privateJMenuItemmenuWrapline;
privateJMenu=newJMenuItem("
打开"
menuSave=newJMenuItem("
保存"
menuSaveAs=newJMenuItem("
另存为"
menuQuit=newJMenuItem("
退出"
fileMenu.add(menuOpen);
fileMenu.addSeparator();
分隔线
fileMenu.add(menuSave);
fileMenu.add(menuSaveAs);
fileMenu.add(menuQuit);
设置「编辑」菜单
JMenueditMenu=newJMenu("
编辑(E)"
menuUndo=newJMenuItem("
撤销"
menuCut=newJMenuItem("
剪切"
menuCopy=newJMenuItem("
复制"
menuPaste=newJMenuItem("
粘贴"
menuDelete=newJMenuItem("
刷除"
editMenu.add(menuUndo);
editMenu.addSeparator();
editMenu.add(menuCut);
editMenu.add(menuCopy);
editMenu.add(menuPaste);
editMenu.add(menuDelete);
设置「格式」菜单
JMenuformMenu=newJMenu("
格式(O)"
menuWrapline=newJMenuItem("
自动换行"
formMenu.add(menuWrapline);
设置「帮助」菜单
JMenu.addActionListener(
菜单-保存
菜单-另存为
菜单-退出
菜单-撤销
菜单-剪切
菜单-复制
菜单-粘贴
菜单-刷除
菜单-自动换行
菜单-关于
程序名称
记事本
程序设计
黄峰
简介:
可作为验收Java的实现对象\n"
关于JNotePad"
编辑区键盘事件
textArea.addKeyListener(
newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){processTextArea();
}
privatevoidopenFile(){if(isCurrentFileSaved()){文件是否为保存状态
open();
打开
intoption=JOptionPane.showConfirmDialog(
null,"
文件已修改,是否保存?
保存文件?
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE,null);
switch(option){
确认文件保存
caseJOptionPane.YES_OPTION:
saveFile();
保存文件
break;
放弃文件保存
caseJOptionPane.NO_OPTION:
privatebooleanisCurrentFileSaved(){if(stateBar.getText().equals("
)){
returnfalse;
returntrue;
privatevoidopen(){
fileChooser是JFileChooser的实例
显示文件选取的对话框
intoption=fileChooser.showDialog(null,null);
使用者按下确认键
if(option==JFileChooser.APPROVE_OPTION){try{
开启选取的文件
BufferedReaderbuf=
newBufferedReader(
newFileReader(
fileChooser.getSelectedFile()));
设定文件标题
setTitle(fileChooser.getSelectedFile().toString());
清除前一次文件
textArea.setText("
设定状态栏
未修改"
取得系统相依的换行字符
StringlineSeparator=System.getProperty("
line.separator"
读取文件并附加至文字编辑区
Stringtext;
while((text=buf.readLine())!
=null){
textArea.append(text);
textArea.append(lineSeparator);
buf.