设计Java记事本程序的报告.docx

上传人:李司机 文档编号:6851015 上传时间:2024-03-04 格式:DOCX 页数:28 大小:200.80KB
返回 下载 相关 举报
设计Java记事本程序的报告.docx_第1页
第1页 / 共28页
设计Java记事本程序的报告.docx_第2页
第2页 / 共28页
设计Java记事本程序的报告.docx_第3页
第3页 / 共28页
设计Java记事本程序的报告.docx_第4页
第4页 / 共28页
设计Java记事本程序的报告.docx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《设计Java记事本程序的报告.docx》由会员分享,可在线阅读,更多相关《设计Java记事本程序的报告.docx(28页珍藏版)》请在三一办公上搜索。

1、Java语言程序设计汇报班级:08计科3班学号:19108312姓名:李云飞成绩:2023年1月6日简朴记事本程序的设计摘要本次课程设计的题目是用JAVA语言编写记事本程序,规定是:用图形界面实现;具有简朴的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保留、另存为、查找、替代等功能。本程序重要用到了JaVaSWing组件和事件监听器,还用到了文献的输入输出流。记事本的界面参照了WindoWS中日勺记事本界面,并且根据课程设计规定做了合适B调整。关键字:记事本程序;JaVa语言;JCreator序言JaVa的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被

2、用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1公布。1998年J2SE1.2公布,标志Java2的诞生。十数年来,JaVa编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系构造由JaVa语言、JaVaelass、JaVaAp1、JaVa虚拟机构成。它具有简朴、面向对象、强健、安全、构造中立、可移植和高效能等众多长处。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟H勺处理方案。JavaH勺平台原则有JaVaME,JaVaSE和JaVaEE。JaVa发展到今天,它的卓越成就及在业界H勺地位毋庸置疑

3、。目前在众多口勺支持JaVa的开发工具中重要欢J7有JaVaDeVeIOPnlenlKiI,NetBeans,Jcreator,JBuilder,JDCVeloPCr和ECliPSe等。其中JaVaDevelopmentKit简称JDK是大多开发工具的基础。以上的每种开发工具均有优缺陷,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等原因来选择一种合适的开发工具。在本程序设计中,由于需要开发的是记事本程序,规模较小,内容较少,因此选择了适合初学者使用的JCreator开发工具。1需求分析1.1 需求分析目前网络上多种文档编辑器数不胜数,有EmEditor,UEStudio,

4、GridinSoftNotepad,Notepad+,win32pad,SkimEdit,UniRed,xint。功能也是应有尽有,有能变化字体的,有能变化文字颜色的。不过,这些软件又存在多种各样的瑕疵或问题:有的文献体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从平常应用方面来说,一种文本编辑器只需某些简朴实用的功能就够了。本程序设计就是根据这样一种使用需要设计了一种简朴的记事本程序。1.2 功能设计本程序要构建FI勺记事本程序参照了Windows操作系统的记事木工具,其功能有如下几种方面:(1) .菜单中有“文献”,“编辑”,“有关”三个主菜单。(2) “文献

5、”有“新建”“打开”“保留”“退出”四个子菜单:分别用于新建文献,打开文献,保留文献,退出记事本。(3) “编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。增长了“颜色”子菜单来对文字的颜色进行设置。(4) “有关”菜单中有有关记事本程序的制作日期,作者等信息2.概要设计2.1 程序设计思绪在本程序中,设计了一种菜单栏和文本内容区。设计过程中用到了JSCroIIPane,JUenu,JTextPane,JFiIeehOOSer等。JMeml用来制作菜单,菜单包括“文献”“编辑”“有关”。JTeXlPane重要用来输入文本。为了加入颜色的设置,因此加了一种

6、JCOlorChOoSer组件。2.2模块阐明图ActionListenermynotepadJFrame在图1中,首先创立种名为mynotepad的!类并继承JFrame类作为最底层H勺容器。mynotepad在图2中,构造一种mynotepad类时要做三件事情,分别是初始化容器(initTextContent)初始化组件(initMenu%InitAboutDialog)x设置事件监听器。2.3程序流程图图32. 4程序有关阐明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一种mynotepad类继承JFrame作为最底层容器。(1) .T。XtCOntent为程序文本输入区。(

7、2) .Menu为菜单栏。(3) .AboutDialog为有关对话框。(4).要想记事本完毕需求分析中对应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ACtionLiStener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。此外,还用来WindoWLiStener来监听处理容器关闭触发的事件,WindOWLiSlener继承了WindowsAdapter类并覆盖了WindowsClosing措施。3.程序详细设计与分析3.1.初始化组件initTextContent();initMenu();init

8、AboutDialog();3.2,构建菜单栏及其下拉菜单JMenumenus=newJMenunewJMenU(文献),newJMenu(编辑),newJMenU(有关”);JMenuItemoptionofmenu=newJMenuItemfnewJMenuItem(新建),newJMenuItem(打开),newJMenuItem(“保留),newJMenUlten(退出),newJMenuItem(复制),n。WJMCnUltCln(剪切),newJMenUIIen(粘贴”),newJMenuItem(颜色”),(newJMCnUIten(有关”);3.3.“文献”菜单的事件监听Act

9、ionListeneraction=newActionListenerOpublicvoidactionPerformed(ActionEvente)Stringname=e.getActionCommand();JMenuItemMT=(JMenuTtem)e.getSource();if(新建.equals(name)content.SetTeXt();file=null;elseif(打开”.equals(name)if(file!=nulDopenfile.SetSelectedFiIe(file);intreturnVal=openfile.ShowOpcnDialog(mynote

10、pad.this);if(reIurnVal=JFiIeChooser.APPR0VE_0PT10N)fiIe=Openfile.getSelectedFile();unfold();)elseif(保留.equals(name)if(file!=null)openfile.SetSelectedFile(file);intrcturnVal=openfile.ShowSaveDialog(mynotepad.this);if(returnVal=JFiIeChooser.APPROVE_OPTION)file=openfile.getSelectedFiIe();savingO;elseif

11、(退出”.equals(name)mynotepadf=newmynotepad();intS=JOptionPane.ShowConfirmDialog(f,退出?,退出JOptionPane.YESNOOPTION);3.4.“编辑”菜单日勺事件监听elseif(“剪切”.equals(name)content,cutO;elseif(复制.equals(name)content,copyO;elseif(粘贴.equals(name)content,paste();elseif(颜色.equals(name)color=JColorChooser.ShowDialog(mynotepad

12、.this,color);content.SetForeground(color);3 .5.异常处理在运行程序代码是有也许会产生异常状况或异常事件,为了防止这种状况,就需要在程序中用到JaVa异常处理机制。本程序中选用的异常处理机制是try,catcho捕捉处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。saving()tryFileWriterWritef=newFileWriter(file);Writef.write(content.gctText();Writef.closeO;catch(Exceptione)e.printStackTrace();v

13、oidunfold()try(FileReaderReadf=newFileReader(file);intlen=(int)file.IengthO;charbuffer=newcharlen;Readf.read(buffer,0,len);Readf.close();content.setText(newStringCbuffer);catch(Exceptione)e.PrintStackTrace();)4 .测试分析我的记事本程序文件编辑关于图4:点击“文献”运行状况图5:“文献”菜单中的“打开”对话框我的记事本程序V*文件褊辑关于1岳父母结婚三十年,互敬互爱,从不吵架,为此我结婚

14、时特地去请教岳父大人.岳父说:“我结婚时我岳父就告诉我:“不要批评你太太的缺点或怪她做错事,要知道,就是因为她有缺点,有时做错事,才没有找到更理想的丈=夫.”你要记住这句话-“_2有时候,你等的不是事情,机会,或是谁,你等的是时间。等时间,让自己忘记,等时间,让自己改变,放弃便是得到,forget-it=for-get-it3.1.痛苦来临时不要总问:“为什么偏偏是我?”因为快乐降临时你可没有问过这个问题。2.付出真心,才会得到真心,却可能饬的彻底;保持距离,才能保护自己,却注定永远寂寞.3.就苴不快乐也不要皴眉,因为你永远不知道谁会爱上你的笑容.4.哗众可以取宠,也可以失宠4能说出来的不是苦

15、,说不出来的才是真的苦4.两个男人追一个女人,用情i戋的那个先放弃;两个女人追一个男人,用情深的那个先放弃。6.生命是一个不停飘移的过程,你我所走过的每一个地方,每一个人,也许都将成为驿站,成为过客,一向喜欢追忆,喜欢回顾,喜欢不忘记.如今却发现,深刻在心里.那些东西早已在他们的时间里化成遗忘,不要让心太累,不要追想太多已不属于自己的人和事。7.慢慢才知道,太在乎别人了往往会伤害自己:慢慢才知道,对自己好的人会随着时间流逝越来越少;慢慢才知-一一一囹6;打菽版后文件WA关于1岳父母结婚三十年互盘互爱从不纱架,力就我结婚的仲培老浦故国父大人.需父说:“我给好时我岳父就密诉貌:“不要批仔你太太的疑

16、亘或怪检做幡事,SQjfi,戟M因为飨有融直,有时做憎事,才没看找到更起招的丈夫”伊襄记住这句话.”2亶时候,你等的不是事修,机合,或是遭,你等的是时间W,让自己忘记,W,让自己改头,放弃便是播到.IofgeHkfOfPeHI31痛苦碎时不变它角:“力什么假靠是我?”因力快分篝物时你再没春问过这个向熙.2付出JI心才会得到H心,却可右伤的沏底;侵捋距H,才委保护自己,蝇定尔比我寡3我复不快乐也不要里Ie,El为你如i不知灌灌含爱上你的其密.,蟀众可以先,电可以失584IR说出来的不是苦,说不由来的才JW的若4甫个男人逐一个女人,*iMW-TftW;有个女人选一个男人,用.喇海个光施弃6生是一个

17、不例R球的过程你我所知的每一个雉力*个人也许IWQrtl达威力过客,一向苔入废忆,再次回版,苔欢不:5记.R今却发Hl而划在心里郡或东西早已在怆1但时间里化出IW,不要让C太累,不要IejS太华巳不鼐于3的人和事文件编辑关于WfiS11MSBRSBIMjEIl取洎堇设(B)图7:“编辑”中H勺“颜色”设置功能我的记事本程序我的记事本程序制作者:LYF201诈1月图8:“有关”对话框5 .源程序清单importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;classmynotepadextendsJFr

18、ameFilefile=null:Colorcolor=Color.red;mynotepad()initTextContent();/初始化组件initMenu();initAboutDialog();)voidInitTextContentO(gelContentPane().add(newJScrollPane(conlent);滚动面板对象)JTextPanecontent=newJTextPaneO;/创立/内容输入区JFileChooseropenfile=newJFileChooserO;创立打开文献对话框JColorChooseropencolor=newJColorChoos

19、er();颜色选择JDialogabout=newJDialog(this);有关对话框JMenuBarmenu=newJMenuBarO;创立菜单栏菜单栏的各个菜单项JMenumenus=newJMenunewJMenU(“文献”),newJMenU(编辑),newJMenU(有关)/“文献”菜单项日勺四个下拉菜单JMenuItemoptionofmenu=newJMenuItemnewJMenUltem(新建),newJMenuItem(nJTffn),newJMenUltem(保留),newJMenuItemCiM)编辑菜单的四个下拉菜单newJMenuhem(复制),newJMenUI

20、tem(剪切),newJMenuItem(粘贴),newJMenuItem(颜色),newJMenUltem(有关)1;voidinitMenu()fbr(inti=0;imenus.length;1+)menu.add(menusi);Ibr(intj=0;joptionofmenuil.lengthy+)menusi.add(optionofmenuilj);OPtiOnOfmenui皿.addActionListeneKaction);1)this.setJMenuBar(menu);)添加事件监听ActionListeneraction=newActionListenerOpublic

21、voidactionPerformed(ActionEvente)Stringname=e.getActionCommand();JMenuItemMI=(JMenuItem)e.getSource();if(新建.equals(name)监听“新建”事件content.setText();file=null;elseif(打开.equals(name)监听“打开”事件if(file!=null)openfile.setSeIectedFile(file);intretumVal=openfile.showOpenDiaIog(mynotepad.this);if(retumVal=JFile

22、Chooser.APPROVE_OPTION)file=openfile.getSeIectedFile();/打开选择文献unfold();)elseif(S.equals(name)监听“保留”事件if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal=JFileChooser.APPROVE_OPTION)file=openfile.getSelectedFile();saving();)(elseif(,iB.equals

23、(name)mynotepadf=newmynotepad();ints=JOptionPane.showConfirmDialog(f,退出?退出,JOptionPane.YES_NO_OPTION);提醒顾客与否退出if(s=JOptionPane.YES_OPTION)System.exit(O);ekeif(“剪切”.equals(name)/监听“剪切”事件content.cut();elseif(复制”.equals(name)监听“复制”事件conlent.copy();elseif(粘贴.equals(name)监听“粘贴”事件content.paste();elseif(颜色

24、.equals(name)监听“颜色”事件coIor=JColorChooser.showDialog(mynotepad.this,*,color);Contenl.SetForeground(Color);对颜色进行设置Jelseif(有关.equals(name)aboutsetSize(300,150);设置“有关”对话框大小为300X150aboul.show();显示“有关”对话框voidsaving()try(创立文献写入器FileWriterWritef=newFileWriter(file);Writef.write(conlent.getText();Wrilef.clos

25、e();catch(Exceptione)e.printStackTrace();void unfold()try(FileReaderReadf=newFileReader(file);文献读入intlen=(int)file.length();charbuffer=newcharlen;Readfread(buffer,0,len);Readf.close();content.setText(newString(buffer);)catch(Exceptione)e.printStackTrace();)voidinitAboutDialog()about.setLayout(new Gr

26、idLayout(3,1);将“有关”对话框设置为3行1列aboul.gelConlentPane().selBackground(Color.while);/设置对话框背景色about.getContentPane().add(newJLabele我口勺记事本程序);/对话框内容about.getContentPane().add(newJLabeI(制LYF);aboul.getContentPane().add(newJLabel(2023年1月);about.setModal(true);设置对话框前端显示about.setSize(l00,100);设置对话框显示位置about.se

27、tLocation(250,170);publicclassNotepadpublicstaticvoidmain(Slringargs)(入口main函数mynotepadnoted=newmynotepad();noted.addWindowListener(newWindowAdapter()1);noted.setTitle(“我的记事本程序”);记事本标题noted.setSize(640,320);设置记事本大小noted.show();noted.setLocation(150,100);设置记事本显示位置6.课程设计总结通过一种星期的努力,基本上完毕我的JaVa课程设计一简朴的

28、记事本程序,也基本上实现我在需求分析时所预期的功能。通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而深入巩固和丰富了我所学过的知识,让我更深层次地认识到JaVa及其强大的功能。同步,做这门课程设计也深入加强了我H勺动手能力。为了完毕好这次课程设计,我提前做了较多的准备,一边上网查找有关资料,另首先查阅有关书籍。在这过程中也无形中锻炼了我的思维分析、碰到问题及想方设法通过多种途径处理问题的能力。不过,设计过程中也存在某些问题,本来一开始想给这个记事本程序加上一张背景图片,以及添加字体设置功能,不过由于本人知识浅陋以及多种其他原因,使得这些想法没有实现,这是这次课程设计的!一点

29、遗憾。参照文献1孙全党王吴迪赵枫朝,Java程序设计应用教程,电子工业出版社,2023.2.雷之宇,JaVa项目开发实践一网络篇,中国铁道出版社,2023.53 .赵玉阳,JaVa从入门到精通,清华大学出版社,2023.84 .李茏怡,JaVa编程实例讲解,高等教育出版社,2023.11完整代码:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;classmynotepadextendsJFrameFilefile=null;Colorcolor=CoIor.red;mynotepad()in

30、itTextContent();ini(Menu();InitAboutDiaIogO;)voidinitTextContent()(getContentPane().add(newJScrollPane(content);)JTextPanecontent=newJTextPane();JFileChooseropenfile=newJFileChooserO;JColorChooseropencolor=newJColorChooser();JDialogabout=newJDialog(Ihis);JMenuBarmenu=newJMenuBar();JMenumcnus=newJMen

31、unewJMenUc文献”),newJMenU(“编辑”),newJMenU(“有关”);JMenuItemoptionofmenu=newJMenuItemnewJMenUhem(新建),newJMenUltem(“打开”),newJMenUltem(保留),newJMenuItem(,ifi,t)newJMenUltem(复制),newJMenUltem(剪切),newJMenUIIem(粘贴),newJMenUItem(颜色),(newJMenUItem(有关);for(inti=0;imenus.length;1+)menu.add(mcnusi);fbr(intj=0:joption

32、ofmenui.length;j+)menusi.add(optionofmenuij);optionofmenuilj.addActionListener(action);)this.seUMenuBar(menu);)ActionListeneraction=newActionListenerOpublicvoidactionPerformed(ActionEvente)Stringname=e.getActionCommand();JMenuItemMI=(JMenuItem)e.getSource();if(新建.equals(name)content.setText();file=n

33、ull;)elseif(打开.equals(name)if(filc!=null)openfile.setSelectedFile(file);intretumVal=openfile.showOpenDialog(mynotepad.this);if(returnVal=JFileChooser.APPROVE_OPTION)file=openfile.getSelectedFile();unfold();)elseif(保留.equals(name)if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.show

34、SaveDialog(mynotepad.this);if(returnVal=JFi!eChooser.APPROVE_OPTION)file=openfiIe.getSelectedFile();saving();)elseif(iB.equals(name)mynotepadf=newmynotepad();ints=JOptionPane.showConfirmDialog(f,退出?,退出,JOptionPane.YES_NO_OPTION);if(s=JOptionPane.YES_OPTION)System.exit(O);)elseif(剪切.equals(name)conte

35、nt.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,l50);about.show();voidsaving()(try(FiIeWriterWritef=newFileWriter(fil

36、e);Writef.write(content.getText();Writef.close();)catch(Exceptione)e.printStackTrace();voidunfold()FileReaderReadf=newFileReader(File);intlen=(int)file.length();charbuffer=newcharlen;Readf.read(buffer,O,len);Readf.close();content.setText(newString(buffer);catch(Exceptione)(e.printStackTrace();)about

37、.setLayout(newGridLayout(3,l);about.getContentPane().setBackground(CoIor.white);about.gelContentPane().add(newJLabeI(我H勺记事本程序);about.getContentPane().add(newJLabel(JLYF);about.getContentPane().add(newJLabel(2023年1月);about.setModal(true);about.setSize(l00,100);about.setLocation(250,170);)publicclassNotepadpublicstaticvoidmain(Stringargsl)mynotepadnoted=newmynotepad();notcd.addVindowListener(newWindowAdapterO);noted.selTile(我H勺记事本程序);noted.setSize(640,320);noted.show();noted.setLocation(150,100);当我的记事本程序文件编辑关于

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号