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

下载本文档

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

文档简介

目 录摘要1前言21设计分析21.1需求分析21.2功能设计32. 概要设计32.1程序设计思路32.2程序模块说明32.3程序流程图52.4 程序相关说明63. 程序详细设计与分析63.1 初始化组件63.2构建菜单栏及其下拉菜单64运行界面及操作流程105源程序清单126设计体会17参考文献17记事本程序的设计摘要该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。该程序主要用到了Java swing。关键字:记事本程序;Java语言;Creator前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、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是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的Creator开发工具。1设计分析1.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad+,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。1.2功能设计本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)菜单中有“文件”,“编辑”,“查看”,“格式”,“帮助”五个主菜单。(2)“文件”有“新建”“打开”“保存”“退另存为”“退出”等几个子菜单:分别用于新建文件,打开文件,保存文件,退出记事本。(3)“编辑”中有“剪切”“复制”“粘贴”“查找”“查找/替换”等几个子菜单。分别用于剪切文字,复制文字,粘贴文字,查找、替换文字进行设置。(4)格式操作:可以对文中的字体设置颜色、字号、字型等格式操作。(5)查看操作:可以显示工具栏和状态栏。 2.概要设计2.1程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了J Scroll Pane ,J Menu,J Text Pane,J File Chooser等。Menus用来制作菜单,菜单包括“文件”“编辑”“关于”。J Text Pane主要用来输入文本。为了加入颜色的设置,所以加了一个Color Chooser组件。2.2程序模块说明图ImplementsAction Listenermy notepadFrameExtends 图1在图1中,首先创建一个名为my notepad的类并继承Frame类作为最底层的容器。my notepad的构造方法初始化容器组件初始化初始化菜单栏文字输入区查看格式编辑文件字型颜色查找粘贴复制剪切退出保存打开新建 图2 在图2中,构造一个my notepad类时要做两件事情,分别是初始化容器、初始化组件。2.3程序流程图启动程序输入文字 False False 关于颜色粘贴复制退出剪切保存打开新建 true true true true true true true trueAbout show filecolorOpen fileSavingContent pasteContent copySystem .exit(0)Content cut关闭或退出程序 图32.4程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个my notepad类继承Frame作为最底层容器。 (1).Text content为程序文本输入区。 (2).Menu为菜单栏。 (3).About Dialog为关于对话框。 (4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中Act Listener实现了Action Listener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。 另外,还用来Window Listener来监听处理容器关闭触发的事件,Window Listener继承了Windows Adapter类并覆盖了Windows Closing方法。3.程序详细设计与分析3.1.初始化组件Init Text Content (); Init Menu (); Init about Dialog ();3.2.构建菜单栏及其下拉菜单Menu menus=new Menu new Menu(文件),new Menu(编辑),new Menu(关于);J Menu Item option of menu =new J Menu Itemnew J Menu Item(新建),new J Menu Item(打开),new J Menu Item(保存),new J Menu Item(退出) , new J Menu Item(复制), new J Menu Item(剪切),new J Menu Item(粘贴),new J Menu Item(颜色) , new J Menu Item(帮助) ; 4运行界面及操作流程(1)文本打开、新建、保存等基本操作图4(2)文本编辑功能: 图5(3)文件菜单中的“打开”对话框图65源程序清单Import java. Act;Import java. Act .event;Import java swing;Import java swing. Event;Import java. Ion;Import java .until;Import java .text;Public class Jab Boolean dirty=true;String text=;J Frame frame=new J Frame(我的记事本);J Popup Menu pop=new J Popup Menu(弹出);J Text Area text=new J Text Area ();J Label stat bar=new J Label(状态栏);Member Mbar=new J Menu Bar ();J File Chooser jFileChooser1=new J File Chooser ();J Color Chooser j Color=new J Color Chooser ();J Menu j File=new J Menu(文件);J Menu j Edit=new Menu(编辑);Menu format=new Menu(格式);Menu help=new Menu(帮助);J Menu Item j new=new J Menu Item(新建(N);public Jab() /无参数的构造函数This dirty=false;Final Border Layout borderLayout1=new Border Layout ();Frame set Size (600,500);/Frame Add Window Listener (new Jab frame closing Adapter (this);Panel panel=new Panel ();Panel set Layout(borderLayout1);/布局Panel add(new J Scroll Pane(text);/滚动条Panel add (stat bar , border Layout1.SOUTH);Frame get Content Pane ().add (panel); Frame Set J Menu Bar (Mbar); /将主菜单添加到窗体中j newj new. Add Action Listener (new File new action Adapter (this);New set Mnemonic(N);/N上下划线j new. Set Accelerator (Key stroke. Get Key Stroke(N,java act event. CTRL _MASK true);/快捷方式* j openJ Menu Item j open=new J Menu Item(打开(O);/j openJ open add Action Listener (new File_ open_ action Adapter (this);J open set Mnemonic(O);J open set accelerator (Key Stroke. Get Key Stroke(O,java. Act event. CTRL_MASK, true);* j saveJ Menu Item j save=new J Menu Item(保存(S);J save Add Action Listener (new File save action Adapter (this);J save .set Mnemonic(S);J saves. Set Accelerator (Key Stroke. get Key Stroke (S, java act .Event. CTRL_ MASK, true);* j save asJ Menu Item j saves=new J Menu Item(另存为.);J saves .add Action Listener (new File _saves_ action Adapter (this);* j quiteJ Menu Item j quite=new J Menu Item(关闭(Q);J quite adds action Listener (new File _quite_ action Adapter (this);j quite. set Mnemonic(Q);j quite set Accelerator(Key Stroke get Key Stroke(Q, java .act .Event .CTRL MASK ,true); j File code of end* j Edit codeJ Menu Item judo=new J Menu Item(撤销(U);J undo add Action Listener (new Edit_ undo_ action Adapter (this);J undo .set Mnemonic(U);J undo set accelerator (Key stroke. Get Key Stroke(U, java .act .Event .CTRL MASK ,true);* j cutJ Menu Item j cut=new J Menu Item(剪切(X);J cut. Add Action Listener (new Edit_ cut_ action Adapter (this);J cut. Set Mnemonic(X);J cut. Set Accelerator(Key Stroke .get Key Stroke(X,java. Act event. CTRL MASK, true);* j copyMenu Item copy=new J Menu Item(复制(C);J copy Add Action Listener (new Edit copy action Adapter (this);J copy set Mnemonic(C);J copy set Accelerator (Key Stroke. Get Key Stroke(C,java act event. CTRL_ MASK, true);* j pasteJ Menu Item j paste=new J Menu Item(粘贴(V);J paste add Action Listener(new Edit paste action Adapter (this);J paste set Mnemonic(V);J paste set Accelerator (Key Stroke. Get Key Stroke(V,java. Act event. CTR MASK, true);* deleteJ Menu Item delete=new J Menu Item(删除(D);J delete add Action Listener (new Edit delete action Adapter (this);J delete set Mnemonic(D);J delete set Accelerator (Key Stroke. get Key Stroke (D,java act Event. CTRL MASK, true);* j findJ Menu Item j find=new J Menu Item(查找(F);J find add Action Listener (new Edit find action Adapter (this);j find set Mnemonic (F);j find set Accelerator (Key Stroke. get Key Stroke (F,java. Act Event. CTRL MASK, true);* replaceJ Menu Item replace=new J Menu Item(替换(R);J replace. add Action Listener(new Edit replace action Adapter (this);J replace. Set Mnemonic(R);J replace set keystroke. jokey stroke (R,java. Act TRL ASK, rue); Texttext.setDoubleBuffered(false);text.setToolTipText(我的记事本);text.setVerifyInputWhenFocusTarget(true);text.setText();text.addCaretListener(new Jsb_text_caretAdapter(this);text.addMouseListener(new Jsb_text_mouseAdapter(this);text.addAncestorListener(new Jsb_text_ancestorAdapter(this);Mbar.add(jFile);Mbar.add(jEdit);Mbar.add(jFormat);Mbar.add(jHelp);jFile.add(jnew);jFile.add(jopen);jFile.addSeparator();jFile.add(jsave);jFile.add(jsaveas);jFile.addSeparator();jFile.add(jquite);jEdit.add(jundo);jEdit.addSeparator();jEdit.add(jcut);jEdit.add(jcopy);jEdit.add(jpaste);jEdit.add(jdelete);jEdit.addSeparator();jEdit.add(jfind);jEdit.add(jreplace);jEdit.addSeparator();jEdit.add(jselectall);jEdit.add(jdate);jFormat.add(jword);jFormat.addSeparator();jFormat.add(jfont);this.save();jFormat.addSeparator(); Event/public void frame_windowclose_windowClosing(WindowListener e)this.close(); public void text_ mouse Clicked(Mouse Event e)if(e.getModifiers()=InputEvent.BUTTON3_MASK)pop.show(Component)e.getSource(),e.getX(),e.getY();public void text_ancestorAdded(AncestorEvent e)this.dirty=false;this.newtext();public void text_caretUpdate(CaretEvent e) this.dirty=true;/this.statubar.setText(this.text.getT

温馨提示

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

评论

0/150

提交评论