简单记事本设计.docx
- 文档编号:3407035
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:14
- 大小:167.28KB
简单记事本设计.docx
《简单记事本设计.docx》由会员分享,可在线阅读,更多相关《简单记事本设计.docx(14页珍藏版)》请在冰豆网上搜索。
简单记事本设计
课程设计(大作业)报告
课程名称:
面向对象程序设计
设计题目:
设计一个记事本
院系:
信息技术学院
班级:
计算机科学与技术2班
设计者:
学号:
指导教师:
设计时间:
2014.1.4.-2014.1.6
昆明学院
昆明学院课程设计(大作业)任务书
姓名:
院系:
专业:
计算机科学与技术专业学号:
任务起止日期:
2014.1.4.-2014.1.6
课程设计题目:
设计一个记事本
课程设计要求:
设计要求:
设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能。
可扩展功能。
1)界面设计
2)记事本的基本功能:
(1)菜单中有“文件”,“编辑”,“关于”三个主菜单。
(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:
分别用于新建文件,打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个子菜单:
用于剪切文字,复制文字,粘贴文字。
可加查找替换等功能。
(4)“关于”菜单中有关于记事本版本等信息
功能可自行增加。
工作计划及安排
时间完成内容
4小时复习相关的课程设计所需的内容,提出要求、提供选题并检索资料、确定设计项目
8小时数据类型定义、确定存储结构、算法设计
10小时算法实现
4小时编写课程设计报告
指导教师签字
年月日
课程设计(大作业)成绩
学号:
姓名:
指导教师:
老师
课程设计题目:
设计一个记事本
总结:
经过两天的努力,基本上完成我的Java课程设计—个简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。
通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。
同时,做这门课程设计也进一步加强了我的动手能力。
为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。
在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。
但是,设计过程中也存在一些问题,以及想要添加更多的功能,比如设置背景图,设置记事本字体等等功能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。
同时经过这次设计,自己巩固连以前学的很多知识和学到了以前很多不会的知识,受益匪浅。
指导教师评语:
成绩:
填表时间:
指导教师签名:
课程设计(大作业)报告
1.课程设计介绍
1.1.课程设计内容
设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能。
可扩展功能。
1)界面设计
2)记事本的基本功能:
(1)菜单中有“文件”,“编辑”,“关于”三个主菜单。
(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:
分别用于新建文件,打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个子菜单:
用于剪切文字,复制文字,粘贴文字。
可加查找替换等功能。
(4)“关于”菜单中有关于记事本版本等信息
功能可自行增加。
1.2课程设计要求
(1)熟悉JAVA开发环境,掌握JAVA程序的编译和运行;
(2)掌握JAVA基本编程技术和方法;
(3)掌握GUI图形界面编程技术;
(4)了解异常处理机制。
2.总体设计
2.1设计题目总体设计、算法描述
在本程序中,设计了一个菜单栏和文本内容区。
设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。
JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。
JTextPane主要用来输入文本。
为了加入颜色的设置,所以加了一个JColorChooser组件。
在图1中,首先创建一个名为mynotepad的类并继承JFrame类作为最底层的容器。
图1.程序流程图
在图1中,构造一个mynotepad类时要做三件事情,分别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。
1).初始化组件
initTextContent();
initMenu();
initAboutDialog();
2).构建菜单栏及其下拉菜单
JMenu[]menus=newJMenu[]{
newJMenu("文件"),
newJMenu("编辑"),
newJMenu("关于")
};
JMenuItemoptionofmenu[][]=newJMenuItem[][]{{
newJMenuItem("新建"),
newJMenuItem("打开"),
newJMenuItem("保存"),
newJMenuItem("退出")
},
3).文件”菜单的事件监听
ActionListeneraction=newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=e.getActionCommand();
JMenuItemMI=(JMenuItem)e.getSource();
if("新建".equals(name)){
content.setText("");
file=null;
}elseif("打开".equals(name)){
if(file!
=null)openfile.setSelectedFile(file);
intreturnVal=openfile.showOpenDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
unfold();
}
}elseif("保存".equals(name)){
if(file!
=null)openfile.setSelectedFile(file);
intreturnVal=openfile.showSaveDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
saving();
}
}elseif("退出".equals(name)){
mynotepadf=newmynotepad();
ints=JOptionPane.showConfirmDialog(f,"退出?
","退出",JOptionPane.YES_NO_OPTION);
2.2功能模块图、流程图分析
1).程序流程图
FalseFalse
truetruetruetruetruetruetruetrue
图3
图2.主流程图
2).模块说明图
图3.模块说明图
3.调试与性能分析
1.主界面图如下:
图4.主界面图
2.运行“文件”图如下:
图5.点击“文件”菜单运行情况图
3.“文件”菜单的“保存”对话
图6.“保存”对话界面图
4.“文件”菜单的“打开”对话
图7.“打开”对话界面图
4.参考文献
主要参考文献
配套教材:
Y. Daniel Liang. Introduction to Java Programming(Sixth Edition ).机械工业出版社, 2008
参考资料:
[1] 叶核亚. Java程序设计实用教程(第3版.电子工业出版社,2010
[2] 耿祥义. JAVA课程设计.清华大学出版,2009
[3] 耿祥义. Java2实用教程.清华大学出版社,2008
[4] 黄小东.Java课程设计案例精编.中国水利水电出版社,2007
附录(程序清单)
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
classmynotepadextendsJFrame{
Filefile=null;
Colorcolor=Color.red;
mynotepad(){//初始化组件
initTextContent();
initMenu();
initAboutDialog();
}
voidinitTextContent(){
getContentPane().add(newJScrollPane(content));
}
JTextPanecontent=newJTextPane();
JFileChooseropenfile=newJFileChooser();
JColorChooseropencolor=newJColorChooser();
JDialogabout=newJDialog(this);
JMenuBarmenu=newJMenuBar();
JMenu[]menus=newJMenu[]{//构建菜单栏及其下拉菜单
newJMenu("文件"),
newJMenu("编辑"),
newJMenu("关于")
};
JMenuItemoptionofmenu[][]=newJMenuItem[][]{{
newJMenuItem("新建"),
newJMenuItem("打开"),
newJMenuItem("保存"),
newJMenuItem("退出")
},
{
newJMenuItem("复制"),
newJMenuItem("剪切"),
newJMenuItem("粘贴"),
newJMenuItem("颜色")
},
{
newJMenuItem("关于")
}
};
voidinitMenu(){
for(inti=0;i menu.add(menus[i]); for(intj=0;j menus[i].add(optionofmenu[i][j]); optionofmenu[i][j].addActionListener(action); } } this.setJMenuBar(menu); } ActionListeneraction=newActionListener(){//“文件”菜单的事件监听 publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); JMenuItemMI=(JMenuItem)e.getSource(); if("新建".equals(name)){ content.setText(""); file=null; }elseif("打开".equals(name)){ if(file! =null)openfile.setSelectedFile(file); intreturnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile(); unfold(); } }elseif("保存".equals(name)){ if(file! =null)openfile.setSelectedFile(file); intreturnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile(); saving(); } }elseif("退出".equals(name)){ mynotepadf=newmynotepad(); ints=JOptionPane.showConfirmDialog(f,"退出? ","退出",JOptionPane.YES_NO_OPTION); if(s==JOptionPane.YES_OPTION)//“编辑”菜单的事件监听 System.exit(0); }elseif("剪切".equals(name)){ content.cut(); }elseif("复制".equals(name)){ content.copy(); }elseif("粘贴".equals(name)){ content.paste(); }elseif("颜色".equals(name)){ color=JColorChooser.showDialog(mynotepad.this,"",color); content.setForeground(color); }elseif("关于".equals(name)){ about.setSize(300,150); about.show(); } } }; voidsaving(){//异常处理 try{ FileWriterWritef=newFileWriter(file); Writef.write(content.getText()); Writef.close(); } catch(Exceptione){e.printStackTrace();} } voidunfold(){ try{ FileReaderReadf=newFileReader(file); intlen=(int)file.length(); char[]buffer=newchar[len]; Readf.read(buffer,0,len); Readf.close(); content.setText(newString(buffer)); }catch(Exceptione){e.printStackTrace();} } voidinitAboutDialog(){//创建关于窗口 about.setLayout(newGridLayout(5,1)); about.getContentPane().setBackground(Color.white); about.getContentPane().add(newJLabel("我的记事本程序")); about.getContentPane().add(newJLabel("制作者: zhujianchun")); about.getContentPane().add(newJLabel("huangyingjun")); about.getContentPane().add(newJLabel("2014年1月")); about.getContentPane().add(newJLabel("昆明学院信息技术学院")); about.setModal(true); about.setSize(100,100); about.setSize(100,100); about.setLocation(250,170); } ; } publicclassNotepad{//主函数 publicstaticvoidmain(Stringargs[]){ mynotepadnoted=newmynotepad(); noted.addWindowListener(newWindowAdapter(){ }); noted.setTitle("我的记事本程序"); noted.setSize(640,320); noted.show(); noted.setLocation(150,100); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 记事本 设计