JAVA课程设计记事本(含代码)_第1页
JAVA课程设计记事本(含代码)_第2页
JAVA课程设计记事本(含代码)_第3页
JAVA课程设计记事本(含代码)_第4页
JAVA课程设计记事本(含代码)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

PAGEVJava程序课程设计任务书一、主要任务与目标1.掌握java语言,能够学会使用JCreator开发具体的软件。2.使用所学知识开发一个基于Java的记事本。二、主要内容与基本要求本程序在执行后应能处理文本编辑的一些基本功能。根据记事本的特点,程序主要功能设计有:打开文件,读取文件中的文本信息:对原有文件可实行打开操作,并能读取文件中的内容,以方便对文件的查看,修改等任务。显示、编辑修改文本信息:记事本对文字信息的主要处理功能。可对相关信息进行复制,剪切,粘贴等操作。实现新建、保存文本文件:新建文本可以使用户写入新的信息,文件保存后再次打开仍可获得原有信息。三、计划进度1.12月28日--12月28日:搜集资料、查阅文献,确定选题2.12月29日--12月30日:需求分析,系统设计,系统功能模块完善3.1月1日--1月3日:编程实现系统、系统测试与修改

4.1月4日--1月5日:课程设计报告撰写5.1月6日--1月7日:课程设计报告答辩四、主要参考文献(1)洪维恩何嘉java2面向对象程序设计.中国铁道出版社,2004.2(2)耿祥义张跃平Java大学实用教程(第2版).电子工业出版社,2008.5(3)孙全党王吴迪赵枫朝Java程序设计应用教程,电子工业出版社,2006.2摘要随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。JAVA是实践性很强的课程。课程设计是加强实践能力的一个强有力手段。要求掌握JAVA的应用、编写、上机调试的基本方法。本课程设计就是主要利用java语言编写的一个模仿windows记事本的较简单的程序,它能实现打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。该记事本是一个基于JCreator的应用程序。整个界面从符合操作简便、界面友好、灵活、安全的要求出发,完成文本编辑的过程。本课程设计报告介绍了记事本系统,记事本的设计,在记事本的具体实现章节,给出了部分实现了的功能界面和相关的代码。关键词:JAVA,记事本,相关功能ABSTRACTWiththerapiddevelopmentofscienceandtechnology,computerprogramminghasalreadybecomeatrend.JAVAisacorecourseofcomputerprofessional,isthebaseofcomputerscience.JAVAarepractice-neededcurriculum.Thiscourseisdesignedtostrengthenpracticeabilityofapowerfulway,requiringJAVAapplicationsandthebasicmethodsofcomputerdebugging.ThiscourseisasimpleproceduresdesignedmainlyusingJavalanguageandtheimitationofWindowsnotepad.Itcanrealizethatopenfiles,readthetextfileinformation,display,editandmodifytextinformation,new,openandsavetextfilesandcontroltosavetextmessagestothespecifiedfileandsoon.Thisgivesatexteditorgreatconvenience,andatthesametimegreatlyimprovestheefficiency.ThistexteditorisaapplicationbasedonJCreator.Theentireinterfacecompletetexteditingprocessbytherequirementofeasilyoperation,friendlyinterface,flexiblityandsecure.Thisreportintroducesnotebooksystemandnotepaddesign.Inthechapterofnotepadrealization,itgivespartofrealizedfunctioninterfaceandrelevantcode.Keywords:JAVA,notepad,Relevantfunction目录Java程序课程设计任务书 II摘要 IIIABSTRACT III目录 V第1章引言 11.1背景 11.2课程设计内容 11.3任务分工 2第2章记事本系统 32.1记事本概述 32.2记事本的任务及目的 32.3本章小结 3第3章记事本的设计 43.1系统需求分析 43.2系统开发及运行环境 43.3记事本总体结构(流程图) 53.4记事本系统各模块介绍 53.5本章小结 6第4章系统的具体实现 74.1窗口设计 74.2程序功能设计及调试运行 84.2.1在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同接口。 94.2.2加入工具栏的功能键,通过工具栏实现对文本的基本操作。 114.2.4Jcreater 154.3本章小结 18第5章改进部分 195.1加登陆界面 195.1.1登陆界面设计 195.1.2系统主界面 22第6章结束语 24致谢 25参考文献 26附录源代码 27PAGE34第1章引言1.1背景在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令(为了减少打字量)。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件的变化,你需要把它打印出来。相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。最早的全屏编辑器中,有一种叫做O26,它是于1967年为CDC6000系列机器的操作控制台而作的。另外一个早期的全屏编辑器是vi。vi诞生于20世纪70年代,至今,它仍是Unix和Linux的标准编辑器。全屏编辑器对视频终端的销售起到了促进的作用。1.2课程设计内容记事本充分发挥文本编辑的优势,通过各种操作的有机结合,实现文本编辑的各项所需功能。本程序的研究内容涉及记事本功能实现的全过程。

该记事本功能包含以下内容:(1)打开文件,读取文件中的文本信息:对原有文件可实行打开操作,并能读取文件中的内容,以方便对文件的查看,修改等任务。(2)显示、编辑修改文本信息:记事本对文字信息的主要处理功能。可对相关信息进行复制,剪切,粘贴等操作。(3)实现新建、保存文本文件:新建文本可以使用户写入新的信息,文件保存后再次打开仍可获得原有信息。1.3任务分工第2章记事本系统2.1记事本概述记事本是一种只能处理纯文本的文件。由于多种格式源代码都是纯文本的,所以记事本也就成为了使用最多的源代码编辑器。它只具备最基本的编辑功能,所以体积小巧,启动快,占用内存低,容易使用。“记事本”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。下面我们就来看看记事本吧。相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:新建,保存,打印,查找,替换这几个功能。但是“记事本”却拥有一个Word不可能拥有的优点:打开速度快,文件小。我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同,所以对于大小在64KB以下的纯文本的保存最好还是采用记事本。记事本另一项不可取代的功能是:可以保存无格式文件。你可以把记事本编辑的文件保存为:“.html”,“.java”,“.asp”等等任意格式。这使得“记事本”又找到了一个新的用途:作为程序语言的编辑器。翻开任何一本介绍一门编程语言的入门教材,里面都会建议学生在记事本中编写源程序。记事本使用的一个老窍门,在记事本文件的开头输入:“.LOG”之后你每次打开这个文件就会在自动的纪录下文本打开的时间。2.2记事本的任务及目的打开计算本窗口,在编辑区进行文本的输入,可以使用剪切、拷贝、粘贴等功能键,当文本输入完毕后点击“文件”菜单,选择下拉菜单中的“保存文本”打开“保存”窗口,选择保存文件的根目录进行保存。当需要关闭窗口时可通过“文件”菜单下的“退出系统”选项,或者选择“工具栏”中的“退出系统”按钮,也可以直接点击窗口右上角的关闭图标进行关闭。2.3本章小结记事本是一种只能处理纯文本的文件。可以通过菜单栏和工具栏实现以下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。第3章记事本的设计这一章时进销存管理系统的设计,从系统需求分析开始,介绍开发环境和用到的开发工具,系统主要的功能设计,系统的数据流程图。3.1系统需求分析记事本的设计目标为:打开计算本窗口,在编辑区进行文本的输入,可以使用剪切、拷贝、粘贴等功能键,当文本输入完毕后点击“文件”菜单,选择下拉菜单中的“保存文本”打开“保存”窗口,选择保存文件的根目录进行保存。当需要关闭窗口时可通过“文件”菜单下的“退出系统”选项,或者选择“工具栏”中的“退出系统”按钮,也可以直接点击窗口右上角的关闭图标进行关闭。3.2系统开发及运行环境硬件平台:*586以上的计算机*32MB以上的内存*彩色显示器*3.5寸高密软盘驱动器*光盘驱动器*4G以上硬盘空间*鼠标软件平台:*WINDOWS95或WINDOWS98*JcreatorPro全套软件3.3记事本总体结构(流程图)图3.1系统功能结构图3.4记事本系统各模块介绍系统各功能模块实现的功能为:新建记事本:在文件的下拉菜单中点击新建文本或单击工具栏中的新建文本,将文本刷新。打开原有的记事本:在文件的下拉菜单中点击打开文本或单击工具栏中的打开文本,再选中原有的记事本,单击打开按钮,便将原有文本打开。拷贝:先选中需复制的文本,在编辑的下拉菜单中点击拷贝或单击工具栏中的拷贝,便将所选文本复制了。粘贴:在编辑的下拉菜单中点击粘贴或单击工具栏中的粘贴,便将所复制的文本粘贴到需粘贴的地方。剪贴:先选中需剪贴的文本,在编辑的下拉菜单中点击剪贴或单击工具栏中的剪贴,便将所选文本剪贴了。保存:在文件的下拉菜单中点击保存文本或单击工具栏中的保存文本,便将改变的文本保存好。退出系统:在文件的下拉菜单中点击退出系统或单击工具栏中的退出系统,或直接点击状态栏中的,从而关闭文本。3.5本章小结本章介绍了该记事本的运行环境,以及各功能的体现。第4章系统的具体实现界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量,并在很大程度上决定了软件是否成功。4.1窗口设计在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。publicclassEditorDemoextendsJFrameJTextPanetextPane=newJTextPane();//创建文本窗格,编辑窗口JFileChooserfilechooser=newJFileChooser();//文件选择器setJMenuBar(createJMenuBar(actions));//设置菜单栏Containercontainer=getContentPane();//得到容器container.add(createJToolBar(actions),BorderLayout.NORTH);//工具栏container.add(textPane,BorderLayout.CENTER);//增加文本窗格窗口设计流程图:设计一个容器继承自JFrame设计一个容器继承自JFrame创建文本窗格,编辑窗口创建文件选择器设置菜单栏得到容器添加工具栏添加文本窗格图4.1窗口模块框图4.2程序功能设计及调试运行利用JSP“一次编写,各处运行”的编程优点,按功能模块结构设计菜单,布置各明细模块工作界面,编写各个模块的程序代码,进行编译连接运行,经过反复调试修改,以达到系统功能要求。这个过程具有大量的工作量,应仔细对每个程序细节进行分析思考、编写程序并调试,做到程序简洁清楚,尽量避免可能潜在的程序错误,并在必要的地方加以注释,以便于程序阅读和修改。4.2.1在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同接口。部分代码:privateJMenuBarcreateJMenuBar(Action[]actions)//创建菜单栏 JMenuBarmenubar=newJMenuBar();//实例化菜单栏 JMenumenuFile=newJMenu("文件(F)");//实例化菜单JMenumenuEdit=newJMenu("编辑(E)"); JMenumenuFormat=newJMenu("格式(O)"); JMenumenuFind=newJMenu("查找(V)"); JMenumenuAbout=newJMenu("帮助(H)"); menuFile.add(newJMenuItem(actions[0]));//增加新菜单项 menuFile.add(newJMenuItem(actions[1])); menuFile.add(newJMenuItem(actions[2])); menuFile.addSeparator(); menuFile.add(newJMenuItem(actions[7])); menuEdit.add(newJMenuItem(actions[3])); menuEdit.add(newJMenuItem(actions[4])); menuEdit.add(newJMenuItem(actions[5])); menuAbout.add(newJMenuItem(actions[6])); menubar.add(menuFile);//增加菜单 menubar.add(menuEdit); menubar.add(menuFormat); menubar.add(menuFind); menubar.add(menuAbout); returnmenubar;//返回菜单栏实现对文件的操作功能流程图:创建菜单栏创建菜单栏实例化菜单栏增加新菜单项添加菜单返回菜单栏图4.2实现操作功能框图如下图:图4.2.1文件菜单功能生成界面图4.2.2编辑菜单功能生成界面图4.2.3帮助菜单功能生成界面4.2.2加入工具栏的功能键,通过工具栏实现对文本的基本操作。关键代码:Action[]actions=//Action数组,各种操作命令 newNewAction(), newOpenAction(), newSaveAction(), newCutAction(), newCopyAction(), newPasteAction(), newAboutAction(), newExitAction(),privateJToolBarcreateJToolBar(Action[]actions)//创建工具条 JToolBartoolBar=newJToolBar();//实例化工具条 JButtonbt=newJButton(actions[i]);//实例化新的按钮 toolBar.add(bt);//增加按钮到工具栏如图所示:4.2.3对每个菜单项进行注册监听。点击不同功能键时,实现不同的操作,显示不同的窗口。主要实现方法代码如下:classNewActionextendsAbstractAction{//实现新建文件命令功能 publicNewAction(){ super("新建文本");} publicvoidactionPerformed(ActionEvente){ textPane.setDocument(newDefaultStyledDocument());//清空文档 }}classOpenActionextendsAbstractAction{//实现打开文件命令功能 publicOpenAction(){ super("打开文本");} publicvoidactionPerformed(ActionEvente){ inti=filechooser.showOpenDialog(EditorDemo.this);//显示打开文件对话框 if(i==JFileChooser.APPROVE_OPTION){//点击对话框中打开选项 Filef=filechooser.getSelectedFile();//得到选择的文件 try{ InputStreamis=newFileInputStream(f);//得到文件输入流 textPane.read(is,"d");//读入文件到文本窗格 }catch(Exceptionex){ ex.printStackTrace();//输出出错信息 }}}}如下图:图4.2.4打开文件生成界面classSaveActionextendsAbstractAction{//实现保存文本命令 publicSaveAction(){ super("保存文本");} publicvoidactionPerformed(ActionEvente){ inti=filechooser.showSaveDialog(EditorDemo.this);//显示保存文件对话框 if(i==JFileChooser.APPROVE_OPTION){//点击对话框中保存按钮 Filef=filechooser.getSelectedFile();//得到选择的文件 try{ FileOutputStreamout=newFileOutputStream(f);//得到文件输出流 out.write(textPane.getText().getBytes());//写出文件 }catch(Exceptionex){ ex.printStackTrace();//输出出错信息 }}}}如下图:图4.3.1保存文件生成界面classExitActionextendsAbstractAction{//实现退出命令 publicExitAction(){ super("退出系统");} publicvoidactionPerformed(ActionEvente){ System.exit(0);//退出程序}}classCutActionextendsAbstractAction{//实现剪切命令 publicCutAction(){ super("剪切");} publicvoidactionPerformed(ActionEvente){ textPane.cut();//调用文本窗格的剪切命令}}classCopyActionextendsAbstractAction{//实现拷贝命令 publicCopyAction(){ super("拷贝");} publicvoidactionPerformed(ActionEvente){textPane.copy();//调用文本窗格的拷贝命令classPasteActionextendsAbstractAction{//实现粘贴命令publicPasteAction(){ super("粘贴");} publicvoidactionPerformed(ActionEvente){ textPane.paste();//调用文本窗格的粘贴命令}}classAboutActionextendsAbstractAction{//关于版本命令 publicAboutAction(){ super("版本");} publicvoidactionPerformed(ActionEvente){Stringstr="记事本\n\版本:1.0\n\n主要功能:实现简单文本编辑。 JOptionPane.showMessageDialog(EditorDemo.this,str);//显示软件信息 }}如下图:图4.2.5显示版本界面生成图4.2.4JcreaterJcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。为使用者提供了大量强劲的功能,例如:项目管理、工程模板、代码完成、调试接口、高亮语法编辑、使用向导以及完全可自定义的用户界面。当前最新版本是Jcreator3.10,它又分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但这个版本是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C++写的,速度快、效率高。具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置JavaJDK主目录及JDKJavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDKHelp。4.2.5系统调试分析1:窗口调试确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成所有方法的源代码编辑后,对程序进行编译、运行!会出现窗体如下图:图4.2.6编译运行程序生成界面2:功能调试对所有菜单项进行注册监听。在编写触发事件时执行各项操作,包括了一些常用部分的事件处理,实现各功能键的操作。例如当点击“文件“按钮是显示如下窗口:图4.2.7文件按钮实现生成界面当需要打开已存在的文件时,点击“打开文本”按钮会出现如下窗口:图4.2.8打开文件按钮实现生成界面当输入完文本是要保存的话,点击“保存文本”会出现下面的窗口:图4.2.9输入文本界面图4.2.10保存文本界面依次调试其他功能键及窗口,直至达到符合要求的能实现简易的记事本的功能!4.3本章小结本章介绍了系统的具体实现和部分关键代码,其中包括如何实现新建文件,打开文件,保存文件,退出系统以及剪切,拷贝,粘贴等具体操作。第5章改进部分经许加兵老师指导后,我们又对源程序进行了修改和完善,并添加了登陆界面这一新的功能,更形象深刻的将我们所学的知识运用到实建中去。5.1加登陆界面5.1.1登陆界面设计用户登陆界面图如图如图5.1.1和图5.1.2所示:图5.1.1用户登录模块框图图5.1.2用户登陆界面LoginIn的作用是检测用户登陆的合法性,并确认用户输入了合法的登录名和口令部分代码:classLoginInextendsJFrame{ EditorDemoedit; LoginInlogin; JTextFieldf1; JTextFieldf2; JButtonb1; JButtonb2; Stringpower;//表示权限 StringimgePath="e:/workspace/GUI/14.gif"; JPanelp5; Imageimg=Toolkit.getDefaultToolkit().createImage(imgePath); LoginIn(EditorDemoedit){ this.edit=edit; login=this; Containercp=getContentPane(); Labell1=newLabel("用户:"); Labell2=newLabel("密码:"); JPanelp1=newJPanel(); JPanelp2=newJPanel(); JPanelp3=newJPanel(); JPanelp4=newJPanel(); p5=newJPanel(){ protectedvoidpaintChildren(Graphicsg){ g.drawImage(img,0,0,this); super.paintChildren(g); } }; f1=newJTextField(15); f2=newJPasswordField(15); b1=newJButton("登录"); b2=newJButton("重置"); p1.setBackground(Color.orange); p2.add(l1); p2.add(f1); p2.setBorder(newMatteBorder(0,0,0,0,Color.BLACK)); p2.setBackground(Color.ORANGE); p3.add(l2); p3.add(f2); p3.setBackground(Color.ORANGE); p3.setBorder(newMatteBorder(0,0,0,0,Color.BLACK)); p4.add(b1); p4.add(b2); p4.setBorder(newMatteBorder(-3,-3,-3,-3,Color.CYAN)); p4.setBackground(Color.ORANGE); p5.setLayout(newFlowLayout(FlowLayout.CENTER,20,20)); p5.add(p2); p5.add(p3); p5.add(p4); cp.add(p5,BorderLayout.CENTER); b1.addActionListener(newEnter()); b2.addActionListener(newReWrite()); addWindowListener(newwinClose()); } classEnterimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ if((f1.getText()).equals("admin")&&(f2.getText()).equals("123")){ JOptionPane.showMessageDialog(null,"登录成功!用户权限是adimistrator"); power="adminstrator"; login.setVisible(false); edit.setVisible(true); }elseif((f1.getText()).equals("snake") &&(f2.getText()).equals("123456")){ JOptionPane.showMessageDialog(null,"登录成功!登录成功!用户权限是user"); power="adminstrator"; }else JOptionPane.showMessageDialog(null,"登录失败,请重新登录!"); } } classReWriteimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ f1.setText(""); f2.setText(""); f1.requestFocus(); } } classwinCloseextendsWindowAdapter{ publicvoidwindowClosing(WindowEvente){ (e.getWindow()).dispose(); System.exit(0); } }}5.1.2系统主界面登陆成功界面:图5.2登陆成功界面登陆成功后弹出记事本界面:图5.2系统主界面第6章结束语由于计算机的普及,各行业、各单位都有计算机软件系统的应用。该程序所体现的记事本功能为相关记事本的操作和管理带来诸多方便,提高了工作效率。本课程设计的记事本通过在JAVA平台编译、运行源代码,打开计算本窗口,在编辑区进行文本的输入,可以使用剪切、拷贝、粘贴等功能键,当文本输入完毕后点击“文件”菜单,选择下拉菜单中的“保存文本”打开“保存”窗口,选择保存文件的根目录进行保存。当需要关闭窗口时可通过“文件”菜单下的“退出系统”选项,或者选择“工具栏”中的“退出系统”按钮,也可以直接点击窗口右上角的关闭图标进行关闭。经过java记事本的课程设计,收获到了很多,加深了对Java语言的理论知识的理解;更加熟练的掌握了Java语言的设计能力并且有了实践经验;在设计过程中,学到了许多在课堂上没有教授的知识;加强了对Java语言的学习兴趣和好感。致谢参考文献(1)洪维恩何嘉java2面向对象程序设计.中国铁道出版社,2004.2(2)耿祥义张跃平Java大学实用教程(第2版).电子工业出版社,2008.5(3)孙全党王吴迪赵枫朝Java程序设计应用教程,电子工业出版社,2006.2附录源代码程序源代码://记事本importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.FlowLayout;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Label;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStream;importjavax.swing.AbstractAction;importjavax.swing.Action;importjavax.swing.JButton;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JPasswordField;importjavax.swing.JTextField;importjavax.swing.JTextPane;importjavax.swing.JToolBar;importjavax.swing.border.MatteBorder;importjavax.swing.text.DefaultEditorKit.CopyAction;importjavax.swing.text.DefaultEditorKit.CutAction;importjavax.swing.text.DefaultEditorKit.PasteAction;importjavax.swing.text.DefaultStyledDocument;publicclassEditorDemoextendsJFrame{ JTextPanetextPane=newJTextPane();//文本窗格,编辑窗口 JLabelstatusBar=newJLabel();//状态栏 JFileChooserfilechooser=newJFileChooser();//文件选择器 publicEditorDemo(){//构造函数 super("简易记事本");//调用父类构造函数 Action[]actions=//Action数组,各种操作命令 {newNewAction(),newOpenAction(),newSaveAction(),newCutAction(), newCopyAction(),newPasteAction(),newAboutAction(), newExitAction(),}; setJMenuBar(createJMenuBar(actions));//设置菜单栏 Containercontainer=getContentPane();//得到容器 container.add(createJToolBar(actions),BorderLayout.NORTH);//增加工具栏 container.add(textPane,BorderLayout.CENTER);//增加文本窗格 container.add(statusBar,BorderLayout.SOUTH);//增加状态栏 setSize(500,400);//设置窗口尺寸// setVisible(true);//设置窗口可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序 } privateJMenuBarcreateJMenuBar(Action[]actions){//创建菜单栏 JMenuBarmenubar=newJMenuBar();//实例化菜单栏 JMenumenuFile=newJMenu("文件(F)");//实例化菜单 JMenumenuEdit=newJMenu("编辑(E)"); JMenumenuFormat=newJMenu("格式(O)"); JMenumenuFind=newJMenu("查找(V)"); JMenumenuAbout=newJMenu("帮助(H)"); menuFile.add(newJMenuItem(actions[0]));//增加新菜单项 menuFile.add(newJMenuItem(actions[1])); menuFile.add(newJMenuItem(actions[2])); menuFile.addSeparator(); menuFile.add(newJMenuItem(actions[7])); menuEdit.add(newJMenuItem(actions[3])); menuEdit.add(newJMenuItem(actions[4])); menuEdit.add(newJMenuItem(actions[5])); menuAbout.add(newJMenuItem(actions[6])); menubar.add(menuFile);//增加菜单 menubar.add(menuEdit); menubar.add(menuFormat); menubar.add(menuFind); menubar.add(menuAbout); returnmenubar;//返回菜单栏 } privateJToolBarcreateJToolBar(Action[]actions){//创建工具条 JToolBartoolBar=newJToolBar();//实例化工具条 for(inti=0;i<actions.length;i++){ JButtonbt=newJButton(actions[i]);//实例化新的按钮 bt.setRequestFocusEnabled(false);//设置不需要焦点 bt.setFont(newFont("宋体",Font.PLAIN,12)); bt.setBackground(Color.pink); toolBar.add(bt);//增加按钮到工具栏 } returntoolBar;//返回工具栏 } classNewActionextendsAbstractAction{//新建文件命令 publicNewAction(){ super("新建文本"); } publicvoidactionPerformed(ActionEvente){ textPane.setDocument(newDefaultStyledDocument());//清空文档 } } classOpenActionextendsAbstractAction{//打开文件命令 publicOpenAction(){ super("打开文本"); } publicvoidactionPerformed(ActionEvente){ inti=filechooser.showOpenDialog(EditorDemo.this);//显示打开文件对话框 if(i==JFileChooser.APPROVE_OPTION){//点击对话框中打开选项 Filef=filechooser.getSelectedFile();//得到选择的文件 try{ InputStreamis=newFileInputStream(f);//得到文件输入流 textPane.read(is,"d");//读入文件到文本窗格 }catch(Exceptionex){ ex.printStackTrace();//输出出错信息 } } } } classSaveActionextendsAbstractAction{//保存命令 publicSaveAction(){ super("保存文本"); } publicvoidactionPerformed(ActionEvente){ inti=filechooser.showSaveDialog(EditorDemo.this);//显示保存文件对话框 if(i==JFileChooser.APPROVE_OPTION){//点击对话框中保存按钮 Filef=filechooser.getSelectedFile();//得到选择的文件 try{ FileOutputStreamout=newFileOutputStream(f);//得到文件输出流 out.write(textPane.getText().getBytes());//写出文件 }catch(Exceptionex){ ex.printStackTrace();//输出出错信息 } } } } classExitActionextendsAbstractAction{//退出命令 publicExitAction(){ super("退出系统"); } publicvoidactionPerformed(ActionEvente){ System.exit(0);//退出程序 } } classCutActionextendsAbstractAction{//剪切命令 publicCutAction(){ super("剪切"); } publicvoidactionPerformed(ActionEvente){ textPane.cut();//调用文本窗格的剪切命令 } } classCopyActionextendsAbstractAction{//拷贝命令 publicCopyAction(){ super("拷贝"); } publicvoidactionPerformed(ActionEvente){ textPane.copy();//调用文本窗格的拷贝命令 } } classPasteActionextendsAbstractAction{//粘贴命令 publicPasteAction(){ super("粘贴"); } publicvoidactionPerformed(ActionEvente){ textPane.paste();//调用文本窗格的粘贴命令 } } classAboutActionextendsAbstractAction{//关于选项命令 publicAboutAction(){ super("版本"); } publicvoidactionPerformed(ActionEvente){ Stringstr="简易记事本\n\n版本:1.0\n作者:郭孔明\n主要功能:实现简单文本编辑。"; JOptionPane.showMessageDialog(EditorDemo.this,str);//显示软件信息 } } publicstaticvoidmain(String[]args){ LoginInlog=newLoginIn(newEditorDemo()); log.setTitle("系统登录"); log.setSize(360,250); log.setVisible(true); }}classLoginInextendsJFrame{ EditorDemoedit; LoginInlogin; JTextFieldf1; JTextFieldf2; JButtonb1; JButtonb2; Stringpower;//表示权限 StringimgePath="e:/workspace/GUI/14.gif"; JPanelp5; Imageimg=Toolkit.getDefaultToolkit().createImage(imgePath); LoginIn(Edi

温馨提示

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

评论

0/150

提交评论