JAVA课程设计---设计一个记事本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(大作业)报告
课程名称:面向对象程序设计
设计题目:设计一个记事本
院系:信息技术学院
课程设计(大作业)任务书
课程设计(大作业)报告
一、需求分析
如今有关记事本的软件种类繁多。功能也是应有尽有,但是,软件并不是十全十美的:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,实现输入、保存、编辑等简单实用的功能就够了。本程序的设计就是依照这样一种需要设计了一个简单的记事本程序。
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,具体其功能有以下几个方面:
(1)菜单中有“文件”,“编辑”,“关于”三个主菜单。
(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:分别用于新
建文件,打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。增加了“颜色”子菜单来对文字的颜色进行设置。
(4)“关于”菜单中有关于记事本程序的制作日期,作者等信息。
二、系统总体设计
在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。
1.系统功能结构图设计
2.系统文件结构图设计
3.系统编辑结构图设计
UML图:
三、软件平台
1、使用JDK配置环境在JAVA编辑器下进行编辑JAVA源程序
2、EditPlus 3
四、模块的分析与实现
构建菜单以及下拉菜单:
JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("编辑"),
new JMenu("关于")
};
J MenuItem optionofmenu[][]=new JMenuItem[][]{{
new JMenuItem("新建"),
new JMenuItem("打开"),
new JMenuItem("保存"),
new JMenuItem("退出")
},
{
new JMenuItem("复制"),
new JMenuItem("剪切"),
new JMenuItem("粘贴"),
new JMenuItem("颜色")
},
{
new JMenuItem("关于")
}
};
文件菜单事件监听:
ActionListener action=new ActionListener(){
public void actionPerformed(ActionEvent e){
String name = e.getActionCommand();
JMenuItem MI=(JMenuItem)e.getSource();
if("新建".equals(name)){
content.setText("");
file=null;
}else if("打开".equals(name)){
if(file !=null)openfile.setSelectedFile(file);
int returnVal=openfile.showOpenDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
unfold();
}
}else if("保存".equals(name)){
if(file!=null) openfile.setSelectedFile(file);
int returnVal=openfile.showSaveDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
saving();
}
}else if("退出".equals(name)){
mynotepad f=new mynotepad();
int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);
编辑菜单的事件监听:
else if("剪切".equals(name)){
content.cut();
}else if("复制".equals(name)){
content.copy();
}else if("粘贴".equals(name)){
content.paste();
}else if("颜色".equals(name)){
color=JColorChooser.showDialog(mynotepad.this,"",color);
content.setForeground(color);
异常处理:
void saving(){
try{
FileWriter Writef=new FileWriter(file);
Writef.write(content.getText());
Writef.close();
}
Catch (Exception e){e.printStackTrace();}
}
关于部分:
void initAboutDialog(){
about.setLayout(new GridLayout(3,1));
about.getContentPane().setBackground(Color.white);
about.getContentPane().add(new JLabel("简单记事本程序设计"));
about.getContentPane().add(new JLabel("11级计算机1班"));
about.getContentPane().add(new JLabel("制作者:彭磊"));
about.getContentPane().add(new JLabel("2012年12月27日"));
about.setModal(true);
about.setSize(200,100);
about.setLocation(250,150);
}
五、调试分析
各部分调试功能如图所示: