JAVA课程设计.docx
《JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
![JAVA课程设计.docx](https://file1.bdocx.com/fileroot1/2022-11/30/a40722bf-0b23-4258-81f8-ab6f50203b5e/a40722bf-0b23-4258-81f8-ab6f50203b5e1.gif)
JAVA课程设计
软件学院
课程设计报告书
课程名称Java课程设计
设计题目文本编辑器
专业班级软件工程财升本11-1
学号1120970111
姓名刘飞鸿
指导教师徐娇月
年月
目录
1设计时间3
2设计目的3
3设计任务3
4设计内容3
4.1设计过程3
4.1.1类或包的加载3
4.1.2设计一个主类,变量的定义3
4.1.3.文件操作功能的实现5
4.2系统主要用例的实现9
4.2.1文件用例运行效果9
4.2.2编辑用例运行效果9
4.2.3打开文档用例运行效果10
4.2.4关于用例运行效果10
5总结与展望11
参考文献12
成绩评定12
1设计时间
2011年12月19日~2011年12月25日
2设计目的
Java课程设计是对所学面向对象课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。
要求同学们对理论课中所学习到的知识综合运用,实现有一定规模的Java应用。
3设计任务
设计一个简单的文本编辑器,可以实现以下功能:
文件的新建,打开,保存和另存;对文件的编辑,如全选,复制,剪切,粘贴;执行完操作后,能够顺利关闭记事本。
4设计内容
4.1设计过程
4.1.1类或包的加载
packagewenben1;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
importjavax.swing.text.*;
4.1.2设计一个主类,变量的定义
publicclasswenben2extendsJFrame{
JTextPanetextPane=newJTextPane();//文本窗格,编辑窗口
JLabelstatusBar=newJLabel();//状态栏
JFileChooserfilechooser=newJFileChooser();//文件选择器
publicwenben2(){//构造函数
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(330,200);//设置窗口尺寸
setVisible(true);//设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
}
privateJMenuBarcreateJMenuBar(Action[]actions){//创建菜单栏
JMenuBarmenubar=newJMenuBar();//实例化菜单栏
JMenumenuFile=newJMenu("文件");//实例化菜单
JMenumenuEdit=newJMenu("编辑");
JMenumenuAbout=newJMenu("帮助");
menuFile.add(newJMenuItem(actions[0]));//增加新菜单项
menuFile.add(newJMenuItem(actions[1]));
menuFile.add(newJMenuItem(actions[2]));
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(menuAbout);
returnmenubar;//返回菜单栏
}
privateJToolBarcreateJToolBar(Action[]actions){//创建工具条
JToolBartoolBar=newJToolBar();//实例化工具条
for(inti=0;iJButtonbt=newJButton(actions[i]);//实例化新的按钮
bt.setRequestFocusEnabled(false);//设置不需要焦点
toolBar.add(bt);//增加按钮到工具栏
}
returntoolBar;//返回工具栏
}
4.1.3.文件操作功能的实现
classNewActionextendsAbstractAction{//新建文件命令
publicNewAction(){
super("新建");
}
publicvoidactionPerformed(ActionEvente){
textPane.setDocument(newDefaultStyledDocument());//清空文档
}
}
classOpenActionextendsAbstractAction{//打开文件命令
publicOpenAction(){
super("打开");
}
publicvoidactionPerformed(ActionEvente){
inti=filechooser.showOpenDialog(wenben2.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(wenben2.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){
JOptionPane.showMessageDialog(wenben2.this,"简单的文本编辑器演示");//显示软件信息
}
}
publicstaticvoidmain(String[]args){
newwenben2();
}
}
4.2系统主要用例的实现
4.2.1文件用例运行效果
图4-1文件用例运行效果图
4.2.2编辑用例运行效果
图4-2编辑用例运行效果图
4.2.3打开文档用例运行效果
图4-3打开文档用例运行效果图
4.2.4关于用例运行效果
图4-4关于用例运行效果图
5总结与展望
作为软件学院的学生,我觉得能做类似的课程设计是十分有意义,而且是十分必要的。
我们在课堂上掌握的仅仅是专业基础课的理论面,如何去锻炼我们的实践面?
如何把我们所学到的专业基础理论知识用到实践中去呢?
我想做类似的大作业就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当数查阅大量的资料了。
为了让自己的设计更加完善,更加符合软件工程标准,一次次翻阅各种参考资料是十分必要的,同时也是必不可少的。
我们是在作设计,但我们不是艺术家。
他们可以抛开实际,尽情在幻想的世界里翱翔,我们是软件设计师,一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
本次课程设计要求用java进行开发,在这过程中我对java的开发环境进行了探索,这使我对java的集成开发环境有了更深刻的理解。
我发现在学习的过程中带着问题去学效率很高,边学边用这样才会提高效率,这是我作本次课程设计的第二大收获。
但是由于水平有限,难免会有错误,还望老师批评指正。
参考文献
[1]刘万军,郑少京,王松波等.Java6程序设计实践教程[M].北京:
北京清华大学出版社,2009
[2]张广彬,孟红蕊,张永宝.Java课程设计案例精编[M].北京:
清华大学出版社,2007,1.
[3]黄晓东.Java课程设计案例精编[M].北京:
中国水利水电出版社,2004,5.
成绩评定
成绩教师签字