版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计报告实现记事本功能系别:××××××姓名:×××班级:×××××××××指导老师:×××2011年6月5日目录一、摘要 3二、关键字: 3三、前言 3四、目的: 3五、要求: 4六、设计分析 41.概要设计 41.1程序设计思路 41.2模块说明图 41.3程序流程图 51.4程序相关说明 62.程序详细设计与分析 72.1.初始化组件 72.2.构建菜单栏及其下拉菜单 72.3.“文件〞菜单的事件监听 82.4.“编辑〞菜单的事件监听 92.5.异常处理 9七、测试分析 10八、源程序 12九、课程设计体会 17一、摘要本次课程设计的题目是用JAVA语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。本程序主要用到了Javaswing组件和事件监听器,还用到了文件的输入输出流。记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。二、关键字:记事本程序;Java语言;MyEclipse三、前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Javaclass、JavaAPI、Java虚拟机组成。它具有简单、面向对象、健壮、平安、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有JavaME,JavaSE和JavaEE。Java开展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中JavaDevelopmentKit简称JDK是大多开发工具的根底。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种适宜的开发工具。在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的MyEclipse开发工具。四、目的:1〕复习、稳固Java语言的根底知识,进一步加深对Java语言的理解和掌握;2〕课程设计为学生提供了一个既动手又动脑,独立实践的时机,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3〕培养学生在工程开发中团队合作精神、创新意识及能力。五、要求:1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练,可用,功能全面3、记录设计情况〔备查,也为编写设计说明书作好准备〕;4、要求上机调试通过和按设计报告格式。5、功能要求:用图形用户界面实现。6、能实现编辑、保存、另存为、查找替换等功能。六、设计分析1.概要设计1.1程序设计思路 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,MyListener,JFrame等。JMenu用来制作菜单,菜单包括“文件〞“编辑〞“关于〞。JTextArea主要用来输入文本。1.2模块说明图implementsActionListenerimplementsActionListenerNotebookNotebookJFrameextendsJFrameextends图1在图1中,首先创立一个名为Notebook的类并继承JFrame类作为最底层的容器。图21.3程序流程图启动程序启动程序输入文字输入文字FalseFalse帮助粘贴复制退出剪切保存翻开新建帮助粘贴复制退出剪切保存翻开新建truetruetruetruetruetruetruetruefile=nullfile=nullhelpfile=openfilehelpfile=openfilesavingsavingcontent.pastecontent.pastecontent.copy()System.exit(0)content.copy()System.exit(0)content.cut()content.cut()关闭或退出程序关闭或退出程序1.4程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个Notebook类继承JFrame作为最底层容器。〔1〕.JScrollPane为程序文本输入区。〔2〕.Menu为菜单栏。〔3〕.要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。2.程序详细设计与分析2.1.构建菜单栏及其下拉菜单//设置菜单分类 JMenumenuFile,menuEdit,menuView,menuHelp; privatevoidsetMenu(){ menuFile=newJMenu("文件(F)",true); menuEdit=newJMenu("编辑(E)",true); menuView=newJMenu("观察(V)",true); menuHelp=newJMenu("帮助(H)",true); } JMenuItemoptionofmenu[][]=newJMenuItem[][]{{ newJMenuItem("新建"), newJMenuItem("翻开"), newJMenuItem("保存"), newJMenuItem("退出") }, { newJMenuItem("复制"), newJMenuItem("剪切"), newJMenuItem("粘贴"), newJMenuItem("颜色")},{newJMenuItem("关于")}};2.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.4.“编辑〞菜单的事件监听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);2.5.异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了防止这种情况,就需要在程序中用到Java异常处理机制。本程序中选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。saving(){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();}}七、测试分析图4:点击“文件〞运行情况图5:“文件〞菜单中的“翻开〞对话框图6:翻开文件后图8:“关于〞对话框八、源程序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<menus.length;i++){ menu.add(menus[i]); for(intj=0;j<optionofmenu[i].length;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);…//设置“关于〞对话框大小为300×150about.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(3,1));……………//将“关于〞对话框设置为3行1列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西现代职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年江苏建筑职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年汕头职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 幼儿园作品展示活动方案模板五篇
- 冷库安装合同
- 环保产业投资基金投资项目合同
- 创新服务合同
- 工程承包合同英语
- 茶苗购销合同范本
- 技术服务合作合同书范本
- 第二章《有理数的运算》单元备课教学实录2024-2025学年人教版数学七年级上册
- DB31-T 596-2021 城市轨道交通合理通风技术管理要求
- 华为智慧园区解决方案介绍
- 2022年江西省公务员录用考试《申论》真题(县乡卷)及答案解析
- 人教版八年级英语上册期末专项复习-完形填空和阅读理解(含答案)
- 一例蛇串疮患者个案护理课件
- 【学前教育小学化成因分析及其对策10000字(论文)】
- 腕管综合征课件
- 事业单位工作人员年度考核登记表(通用模板)
- 人教版七年级数学下册《垂线》
- 公开选拔村级后备干部报名登记表
评论
0/150
提交评论