Java课程设计简单记事本程序的设计_第1页
Java课程设计简单记事本程序的设计_第2页
Java课程设计简单记事本程序的设计_第3页
Java课程设计简单记事本程序的设计_第4页
Java课程设计简单记事本程序的设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java课程设计报告 题 目:简单记事本程序的设计 院 (系):*学院 年级专业:*班 学生姓名: * 指导老师: * 目 录摘要1前言21需求分析21.1需求分析21.2功能设计32.概要设计32.1程序设计思路32.2程序运行界面32.3模块说明图42.4程序流程图52.5程序相关说明63.程序详细设计与分析63.1.初始化组件63.2.构建菜单栏及其下拉菜单63.3.“文件”菜单的事件监听73.4.“编辑”菜单的事件监听83.5.异常处理94测试分析105源程序清单126课程设计总结177致谢17参考文献17 简单记事本程序的设计 摘要 该报告中的程序是使用java程序编写,能够进行输入

2、文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。该程序主要用到了java swing和事件监听等。关键字:记事本程序;java语言;jcreator前言java的前身是oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的internet上。1995年,java语言的名字从oak编程了java。1997年j2se1.1发布。1998年j2se1.2发布,标志java2的诞生。十多年来,java编程语言及平台成功地运用在网络计算及移动等各个领域。java的体系结构由java语言、java c

3、lass、java api、java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。java支持多线程编程,java运行时系统在多线程同步方面具有成熟的解决方案。java的平台标准有java me,java se和java ee。java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持java的开发工具中主要的7有java development kit,netbeans,jcreator,jbuilder,jdeveloper和eclipse等。其中java development kit 简称jdk是大多开发工具的基础。以上的每种开发工具都

4、有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的jcreator开发工具。1需求分析1.1需求分析现在网络上各种文档编辑器数不胜数,有emeditor ,uestudio ,gridinsoft notepad ,notepad+,win32pad ,skimedit,unired, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,

5、使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。1.2功能设计本程序要构建的记事本程序参照了windows操作系统的记事本工具,其功能有以下几个方面:(1).菜单中有“文件”,“编辑”,“关于”三个主菜单。(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:分别用于新 建文件,打开文件,保存文件,退出记事本。 (3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。增加了“颜色”子菜单来对文字的颜色进行设置。 (4)“关于”菜单中有关于记事本

6、程序的制作日期,作者等信息2.概要设计2.1程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了jscrollpane,jmenu,jtextpane,jfilechooser等。jmenu用来制作菜单,菜单包括“文件”“编辑”“关于”。jtextpane主要用来输入文本。为了加入颜色的设置,所以加了一个jcolorchooser组件。2.2程序运行界面2.3模块说明图implementsactionlistenermynotepadjframeextends 图1在图1中,首先创建一个名为mynotepad的类并继承jframe类作为最底层的容器。mynotepad的构造方

7、法添加事件监听初始化容器组件初始化初始化文字输入区菜单栏关于编辑文件关于颜色粘贴复制剪切退出保存打开新建 图2 在图2中,构造一个mynotepad类时要做三件事情,分别是初始化容器(inittextcontent)、初始化组件(initmenu、initaboutdialog)、设置事件监听器。2.4程序流程图启动程序输入文字 false false 关于颜色粘贴复制退出剪切保存打开新建 true true true true true true true trueabout.show()file=nullcolorfile=openfilesavingcontent.pasteconten

8、t.copy()system.exit(0)content.cut()关闭或退出程序 图32.5程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个mynotepad类继承jframe作为最底层容器。 (1).textcontent为程序文本输入区。 (2).menu为菜单栏。 (3).aboutdialog为关于对话框。 (4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中actlistener实现了actionlistener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。 另外,

9、还用来windowlistener来监听处理容器关闭触发的事件,windowlistener继承了windowsadapter类并覆盖了windowsclosing方法。3.程序详细设计与分析3.1.初始化组件inittextcontent(); initmenu(); initaboutdialog();3.2.构建菜单栏及其下拉菜单jmenu menus=new jmenunew jmenu("文件"),new jmenu("编辑"),new jmenu("关于");jmenuitem optionofmenu=new jmenu

10、itemnew jmenuitem("新建"),new jmenuitem("打开"),new jmenuitem("保存"),new jmenuitem("退出") , new jmenuitem("复制"), new jmenuitem("剪切"),new jmenuitem("粘贴"),new jmenuitem("颜色") , new jmenuitem("关于") ;3.3.“文件”菜单的事件监听actio

11、nlistener 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(

12、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=jf

13、ilechooser.approve_option) file=openfile.getselectedfile(); saving(); else if("退出".equals(name) mynotepad f=new mynotepad(); int s=joptionpane.showconfirmdialog(f,"退出?","退出",joptionpane.yes_no_option);3.4.“编辑”菜单的事件监听else if("剪切".equals(name) content.cut(); els

14、e if("复制".equals(name) content.copy(); else if("粘贴".equals(name) content.paste(); else if("颜色".equals(name) color=jcolorchooser.showdialog(mynotepad.this,"",color); content.setforeground(color); 3.5.异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到java异常处理机制。本程序中

15、选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。saving() try filewriter writef=new filewriter(file); writef.write(content.gettext(); writef.close(); catch(exception e)e.printstacktrace(); void unfold() try filereader readf=new filereader(file); int len=(int)file.length(); char buffer=ne

16、w charlen; readf.read(buffer,0,len); readf.close(); content.settext(new string(buffer); catch(exception e)e.printstacktrace(); 4测试分析图4:点击“文件”运行情况 图5:“文件”菜单中的“打开”对话框 图6:“编辑”中的“颜色”设置功能 图7:“关于”对话框5源程序清单import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;class mynotepad exten

17、ds jframe file file=null; color color=color.red; mynotepad() inittextcontent();/初始化组件 initmenu(); initaboutdialog(); void inittextcontent() getcontentpane().add(new jscrollpane(content); /滚动面板对象 jtextpane content=new jtextpane(); /创建/内容输入区 jfilechooser openfile=new jfilechooser();/创建打开文件对话框 jcolorch

18、ooser opencolor=new jcolorchooser();/颜色选择 jdialog about=new jdialog(this);/关于对话框 jmenubar menu=new jmenubar();/创建菜单栏 /菜单栏的各个菜单项jmenu menus=new jmenunew jmenu("文件"),new jmenu("编辑"),new jmenu("关于"); /“文件”菜单项的四个下拉菜单jmenuitem optionofmenu=new jmenuitemnew jmenuitem("新建

19、"),new jmenuitem("打开"),new jmenuitem("保存"),new jmenuitem("退出") , /编辑菜单的四个下拉菜单 new jmenuitem("复制"), new jmenuitem("剪切"),new jmenuitem("粘贴"),new jmenuitem("颜色") , new jmenuitem("关于") ; void initmenu() for(int i=0;i<

20、;menus.length;i+) menu.add(menusi); for(int j=0;j<optionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addactionlistener( action ); this.setjmenubar(menu); actionlistener action=new actionlistener() /添加事件监听 public void actionperformed(actionevent e) string name = e.getactioncommand

21、();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

22、_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(&

23、quot;退出".equals(name) mynotepad f=new mynotepad(); int s=joptionpane.showconfirmdialog(f,"退出?","退出",joptionpane.yes_no_option);/提示用户是否退出 if(s=joptionpane.yes_option) system.exit(0); else if("剪切".equals(name)/监听“剪切”事件 content.cut(); else if("复制".equals(nam

24、e) /监听“复制”事件 content.copy(); else if("粘贴".equals(name) /监听“粘贴”事件 content.paste(); else if("颜色".equals(name) /监听“颜色”事件 color=jcolorchooser.showdialog(mynotepad.this,"",color); content.setforeground(color); /对颜色进行设置 else if("关于".equals(name) about.setsize(300,15

25、0);/设置“关于”对话框大小为300×150 about.show();/显示“关于”对话框 ; void saving() try filewriter writef=new filewriter(file);/创建文件写入器 writef.write(content.gettext(); writef.close(); catch(exception e)e.printstacktrace(); void unfold() try filereader readf=new filereader(file);/文件读入 int len=(int)file.length(); ch

26、ar buffer=new charlen; readf.read(buffer,0,len); readf.close(); content.settext(new string(buffer); catch(exception e)e.printstacktrace(); void initaboutdialog() about.setlayout(new gridlayout(3,1);/将“关于”对话框设置为3行1列 about.getcontentpane().setbackground(color.white);/设置对话框背景色 about.getcontentpane().ad

27、d(new jlabel("我的记事本程序");/对话框内容 about.getcontentpane().add(new jlabel("制作者:fwx"); about.getcontentpane().add(new jlabel("2007年12月"); about.setmodal(true); /设置对话框前端显示 about.setsize(100,100); about.setlocation(250,170); /设置对话框显示位置 ; public class notepadpublic static void m

28、ain(string args) /入口main函数 mynotepad noted=new mynotepad(); noted.addwindowlistener(new windowadapter() ); noted.settitle("我的记事本程序"); /记事本标题 noted.setsize(640,320); /设置记事本大小 noted.show(); noted.setlocation(150,100); /设置记事本显示位置 6课程设计总结经过差不多两个星期的努力,基本上完成我的java课程设计简单的记事本程序,也基本上实现了我在需求分析时所预期的功

29、能。通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,本来一开始想给这个记事本程序加上一张背景图片,以及添加字体设置功能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。7致谢 最后要感谢我的java程序设计的

30、*老师,没有他上课时的教导,而且在课程设计时给了我们帮助。可以这么说,如果没有做java这门课的课程设计,那么我从java课堂上学习到的java知识还会处于一知半解的状态。所以衷心感谢王老师,感谢在课程设计中给我提供帮助的同学们!参考文献1.孙全党 王吴迪 赵枫朝,java程序设计应用教程,电子工业出版社,2006.22.雷之宇,java项目开发实践网络篇,中国铁道出版社,2005.53.赵玉阳,java从入门到精通,清华大学出版社,2006.84.李茏怡,java编程实例讲解,高等教育出版社,2005.11完整代码:import java.awt.*;import java.awt.even

31、t.*;import javax.swing.*;import java.io.*;class mynotepad extends jframe file file=null; color color=color.red; mynotepad() inittextcontent(); initmenu(); initaboutdialog(); void inittextcontent() getcontentpane().add(new jscrollpane(content); jtextpane content=new jtextpane(); jfilechooser openfile

32、=new jfilechooser(); jcolorchooser opencolor=new jcolorchooser(); jdialog about=new jdialog(this); jmenubar menu=new jmenubar(); jmenu menus=new jmenunew jmenu("文件"),new jmenu("编辑"),new jmenu("关于");jmenuitem optionofmenu=new jmenuitemnew jmenuitem("新建"),new jm

33、enuitem("打开"),new jmenuitem("保存"),new jmenuitem("退出") , new jmenuitem("复制"), new jmenuitem("剪切"),new jmenuitem("粘贴"),new jmenuitem("颜色") , new jmenuitem("关于") ; void initmenu() for(int i=0;i<menus.length;i+) menu.add(

34、menusi); for(int j=0;j<optionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addactionlistener( action ); this.setjmenubar(menu); actionlistener action=new actionlistener() public void actionperformed(actionevent e) string name = e.getactioncommand();jmenuitem mi=(jmenuitem)e.getsou

35、rce();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(); e

36、lse 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); if(s=joptionpane.yes_option) system.exit(0); else if("剪切".equals(name) content.cut(); else if("复制".equals(name) content.copy(); else if("粘贴".equ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论