仿windowsJAVA课程设计记事本.docx
《仿windowsJAVA课程设计记事本.docx》由会员分享,可在线阅读,更多相关《仿windowsJAVA课程设计记事本.docx(17页珍藏版)》请在冰豆网上搜索。
仿windowsJAVA课程设计记事本
前言
随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
JAVA是实践性很强的课程。
课程设计是加强实践能力的一个强有力手段。
要求掌握JAVA的应用、编写、上机调试的基本方法。
本课程设计就是主要利用java语言编写的一个模仿windows记事本的较简单的程序,实现了一些基本功能,要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现输入文本文件、控制保存文本信息到指定的文件的功能。
目 录
一、需求分析……………………………………1
二、概要设计……………………………………1
三、详细设计……………………………………2
四、系统调试分析………………………………6
五、课程设计心得体会…………………………7
六、使用说明……………………………………7
七、参考文献及致谢……………………………7
八、附录(程序源代码)………………………7
一、需求分析
该课程设计报告里的简易记事本程序是使用Java程序设计语言编写的,要求实现记事本的基本功能,参考了windows中记事本的一些功能。
要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。
二、概要设计
1.1系统主要功能
本程序是利用java程序设计语言编写的一个简单的记事本程序。
可以通过菜单栏和工具栏实现以下功能:
如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。
1.2运行环境要求
(1)实现设计的系统硬件需求
硬件配置的基本要求:
*586以上的计算机
*32MB以上的内存
*彩色显示器
*3.5寸高密软盘驱动器
*光盘驱动器
*4G以上硬盘空间
*鼠标
(2)实现设计的系统软件
*WINDOWS95或WINDOWS98
*JcreatorPro全套软件
三、详细设计
设计思路:
设计一个EditorDemo类,继承自JFrame类,并在EditorDemo类利用JtextPane创建面板窗口textPane,利用Jlabel创建状态栏statusBar,利用JFileChooser创建文件选择器filechooser,利用JMenuBar创建并实例化菜单栏,利用JToolBar创建工具栏,再通过一些具体方法实现各功能键的功能。
建立构造函数publicEditorDemo();通过该构造函数实现记事本程序的主要功能,运行时在主类中通过调用该构造函数来实现对记事本程序的基本操作。
1:
窗口设计
在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。
publicclassEditorDemoextendsJFrame
JTextPanetextPane=newJTextPane();//创建文本窗格,编辑窗口
JFileChooserfilechooser=newJFileChooser();//文件选择器
setJMenuBar(createJMenuBar(actions));//设置菜单栏
Containercontainer=getContentPane();//得到容器
container.add(createJToolBar(actions),BorderLayout.NORTH);//工具栏
container.add(textPane,BorderLayout.CENTER);//增加文本窗格
2:
功能设计
(1)在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。
点击不同菜单项时,显示不同接口。
privateJMenuBarcreateJMenuBar(Action[]actions)//创建菜单栏
JMenuBarmenubar=newJMenuBar();//实例化菜单栏
JMenumenuFile=newJMenu("文件(F)");//实例化菜单
JMenumenuEdit=newJMenu("编辑(E)");
JMenumenuFormat=newJMenu("格式(O)");
JMenumenuFind=newJMenu("查找(V)");
JMenumenuAbout=newJMenu("帮助(H)");
menuFile.add(newJMenuItem(actions[0]));//增加新菜单项
menuFile.add(newJMenuItem(actions[1]));
menuFile.add(newJMenuItem(actions[2]));
menuFile.addSeparator();
menuFile.add(newJMenuItem(actions[7]));
menuEdit.add(newJMenuItem(actions[3]));
menuEdit.add(newJMenuItem(actions[4]));
menuEdit.add(newJMenuItem(actions[5]));
menuAbout.add(newJMenuItem(actions[6]));
menubar.add(menuFile);//增加菜单
menubar.add(menuEdit);
menubar.add(menuFormat);
menubar.add(menuFind);
menubar.add(menuAbout);
returnmenubar;//返回菜单栏
如下图:
(2)加入工具栏的功能键,通过工具栏实现对文本的基本操作。
Action[]actions=//Action数组,各种操作命令
newNewAction(),
newOpenAction(),
newSaveAction(),
newCutAction(),
newCopyAction(),
newPasteAction(),
newAboutAction(),
newExitAction(),
privateJToolBarcreateJToolBar(Action[]actions)//创建工具条
JToolBartoolBar=newJToolBar();//实例化工具条
JButtonbt=newJButton(actions[i]);//实例化新的按钮
toolBar.add(bt);//增加按钮到工具栏
如图所示:
(3)对每个菜单项进行注册监听。
点击不同功能键时,实现不同的操作,显示不同的窗口。
主要实现方法代码如下:
classNewActionextendsAbstractAction{//实现新建文件命令功能
publicNewAction(){
super("新建文本");}
publicvoidactionPerformed(ActionEvente){
textPane.setDocument(newDefaultStyledDocument());//清空文档
}}
classOpenActionextendsAbstractAction{//实现打开文件命令功能
publicOpenAction(){
super("打开文本");}
publicvoidactionPerformed(ActionEvente){
inti=filechooser.showOpenDialog(EditorDemo.this);
//显示打开文件对话框
if(i==JFileChooser.APPROVE_OPTION){//点击对话框中打开选项
Filef=filechooser.getSelectedFile();//得到选择的文件
try{
InputStreamis=newFileInputStream(f);//得到文件输入流
textPane.read(is,"d");//读入文件到文本窗格
}catch(Exceptionex){
ex.printStackTrace();//输出出错信息
}}}}
如下图:
classSaveActionextendsAbstractAction{//实现保存文本命令
publicSaveAction(){
super("保存文本");}
publicvoidactionPerformed(ActionEvente){
inti=filechooser.showSaveDialog(EditorDemo.this);
//显示保存文件对话框
if(i==JFileChooser.APPROVE_OPTION){//点击对话框中保存按钮
Filef=filechooser.getSelectedFile();//得到选择的文件
try{
FileOutputStreamout=newFileOutputStream(f);
//得到文件输出流
out.write(textPane.getText().getBytes());//写出文件
}catch(Exceptionex){
ex.printStackTrace();//输出出错信息}}}}
如下图:
classExitActionextendsAbstractAction{//实现退出命令
publicExitAction(){
super("退出系统");}
publicvoidactionPerformed(ActionEvente){
System.exit(0);//退出程序}}
classCutActionextendsAbstractAction{//实现剪切命令
publicCutAction(){
super("剪切");}
publicvoidactionPerformed(ActionEvente){
textPane.cut();//调用文本窗格的剪切命令}}
classCopyActionextendsAbstractAction{//实现拷贝命令
publicCopyAction(){
super("拷贝");}
publicvoidactionPerformed(ActionEvente)
{textPane.copy();//调用文本窗格的拷贝命令
classPasteActionextendsAbstractAction{//实现粘贴命令
publicPasteAction(){
super("粘贴");}
publicvoidactionPerformed(ActionEvente){
textPane.paste();//调用文本窗格的粘贴命令}}
classAboutActionextendsAbstractAction{//关于版本命令
publicAboutAction(){
super("版本");}
publicvoidactionPerformed(ActionEvente){
Stringstr="简易记事本\n\版本:
1.0\n作者:
郭孔明\n主要功能:
实现简单文本编辑。
JOptionPane.showMessageDialog(EditorDemo.this,str);//显示软件信息
}}
如下图:
四、系统调试分析
1:
窗口调试
确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。
在完成所有方法的源代码编辑后,对程序进行编译、运行!
会出现窗体如下图:
2:
功能调试
对所有菜单项进行注册监听。
在编写触发事件时执行各项操作,包括了一些常用部分的事件处理,实现各功能键的操作。
例如当点击“文件“按钮是显示如下窗口:
当需要打开已存在的文件时,点击“打开文本”按钮会出现如下窗口:
当输入完文本是要保存的话,点击“保存文本”会出现下面的窗口:
依次调试其他功能键及窗口,直至达到符合要求的能实现简易的记事本的功能!
五、课程设计心得
经过java记事本的课程设计,我在老师的指导下,顺利完成该课程设计。
通过这次课程设计,我收获到了很多,这次JAVA课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做。
我加深了对Java语言的理论知识的理解;我更加熟练的掌握了Java语言的设计能力并且有了实践经验;在设计过程中,学到了许多老师没有在课堂上没有教授的知识;加强了对Java语言的学习兴趣和好感,很是受益匪浅。
六、使用说明
本课程设计的简易计算本通过在JAVA平台编译、运行源代码,打开计算本窗口,在编辑区进行文本的输入,可以使用剪切、拷贝、粘贴等功能键,当文本输入完毕后点击“文件”菜单,选择下拉菜单中的“保存文本”打开“保存”窗口,选择保存文件的根目录进行保存。
当需要关闭窗口时可通过“文件”菜单下的“退出系统”选项,或者选择“工具栏”中的“退出系统”按钮,也可以直接点击窗口右上角的关闭图标进行关闭。
七.参考文献及致谢
参考文献:
洪维恩何嘉java2面向对象程序设计.中国铁道出版社,2004.2
致谢:
在本次设计的过程中,各位老师给了我很大的帮助,不仅使我在规定的时间内完成了系统的设计,同时还使我学到了很多有益的知识和宝贵的经验。
在此,我向帮助我的老师们表示最衷心的感谢。
由于本人水平有限,其中肯定会有一些不当之处,请老师批评指正。
八、附录(程序源代码)
程序源代码:
//简单的文本编辑器
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
importjavax.swing.text.*;
publicclassEditorDemoextendsJFrame{
JTextPanetextPane=newJTextPane();//文本窗格,编辑窗口
JLabelstatusBar=newJLabel();//状态栏
JFileChooserfilechooser=newJFileChooser();//文件选择器
publicEditorDemo(){//构造函数
super("简易记事本");//调用父类构造函数
Action[]actions=//Action数组,各种操作命令
{
newNewAction(),
newOpenAction(),
newSaveAction(),
newCutAction(),
newCopyAction(),
newPasteAction(),
newAboutAction(),
newExitAction(),
};
setJMenuBar(createJMenuBar(actions));//设置菜单栏
Containercontainer=getContentPane();//得到容器
container.add(createJToolBar(actions),BorderLayout.NORTH);//增加工具栏
container.add(textPane,BorderLayout.CENTER);//增加文本窗格
container.add(statusBar,BorderLayout.SOUTH);//增加状态栏
setSize(500,400);//设置窗口尺寸
setVisible(true);//设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
}
privateJMenuBarcreateJMenuBar(Action[]actions){//创建菜单栏
JMenuBarmenubar=newJMenuBar();//实例化菜单栏
JMenumenuFile=newJMenu("文件(F)");//实例化菜单
JMenumenuEdit=newJMenu("编辑(E)");
JMenumenuFormat=newJMenu("格式(O)");
JMenumenuFind=newJMenu("查找(V)");
JMenumenuAbout=newJMenu("帮助(H)");
menuFile.add(newJMenuItem(actions[0]));//增加新菜单项
menuFile.add(newJMenuItem(actions[1]));
menuFile.add(newJMenuItem(actions[2]));
menuFile.addSeparator();
menuFile.add(newJMenuItem(actions[7]));
menuEdit.add(newJMenuItem(actions[3]));
menuEdit.add(newJMenuItem(actions[4]));
menuEdit.add(newJMenuItem(actions[5]));
menuAbout.add(newJMenuItem(actions[6]));
menubar.add(menuFile);//增加菜单
menubar.add(menuEdit);
menubar.add(menuFormat);
menubar.add(menuFind);
menubar.add(menuAbout);
returnmenubar;//返回菜单栏
}
privateJToolBarcreateJToolBar(Action[]actions){//创建工具条
JToolBartoolBar=newJToolBar();//实例化工具条
for(inti=0;iJButtonbt=newJButton(actions[i]);//实例化新的按钮
bt.setRequestFocusEnabled(false);//设置不需要焦点
bt.setFont(newFont("宋体",Font.PLAIN,12));
bt.setBackground(Color.pink);
toolBar.add(bt);//增加按钮到工具栏
}
returntoolBar;//返回工具栏
}
classNewActionextendsAbstractAction{//新建文件命令
publicNewAction(){
super("新建文本");
}
publicvoidactionPerformed(ActionEvente){
textPane.setDocument(newDefaultStyledDocument());//清空文档
}
}
classOpenActionextendsAbstractAction{//打开文件命令
publicOpenAction(){
super("打开文本");
}
publicvoidactionPerformed(ActionEvente){
inti=filechooser.showOpenDialog(EditorDemo.this);//显示打开文件对话框
if(i==JFileChooser.APPROVE_OPTION){//点击对话框中打开选项
Filef=filechooser.getSelectedFile();//得到选择的文件
try{
InputStreamis=newFileInputStream(f);//得到文件输入流
textPane.read(is,"d");//读入文件到文本窗格
}catch(Exceptionex){
ex.printStackTrace();//输出出错信息
}
}
}
}
classSaveActionextendsAbstractAction{//保存命令
publicSaveAction(){
super("保存文本");
}
publicvoidactionPerformed(ActionEvente){
inti=filechooser.showSaveDialog(EditorDemo.this);//显示保存文件对话框
if(i==JFileChooser.APPROVE_OPTION){//点击对话框中保存按钮
Filef=filechooser.getSelectedFile();//得到选择的文件
try{
FileOutputStreamout=newFileOutputStream(f);//得到文件输出流
out.write(textPane.getText().getBytes());//写出文件
}catch(Exceptionex){
ex.printStackTrace();//输出出错信息
}
}
}
}
classExitActionextendsAbstractAction{//退出命令
publicExitAction(){
super("退出系统");
}
publicvoidactionPerformed(ActionEvente){
S