java课程设计论文_第1页
java课程设计论文_第2页
java课程设计论文_第3页
java课程设计论文_第4页
java课程设计论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

第页JAVA语言课程设计报告题目:设计者:专业班级:学号:指导教师:目录TOC\o"1-3"\h\u摘要 1一、系统概述 2二、系统需求分析 22.1需求分析 22.2功能设计 2三、系统总体设计 33.1程序设计思路 33.2程序运行界面 33.4系统数据流程图 43.5程序相关说明 4四、系统详细设计 64.1.初始化组件 64.2.构建菜单栏及其下拉菜单 64.3.“文件”菜单的事件监听 74.4.“编辑”菜单的事件监听 84.5.异常处理 8五、系统调试分析 10六、总结 12参考文献 13附:程序清单 14摘要现在网络上各种记事本软件数不胜数,功能也是应有尽有,有能改变字体的,有能改变颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁琐,是初级使用者一时难以掌握,仅从日常应用方面来说,一个记事本只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需求设计了一个的简单的记事本程序。该程序报告里的程序是使用Java编写的,实现记事本的功能,参考windows中记事本的功能。要求打开文件,读取文件中的文本信息。显示、编辑修改文本信息。Java记事本采用的是JavaSE中的GUI和IO基本技术,可以实现文本的简单操作,如:打开文档、编辑文档、保存文档等。

AbstractNowallkindsofnotepadsoftwareonthenetwork,functionalsoiseverything,canchangethefont,canchangethecolor.However,thesoftwareandallkindsofdefectsorproblems:somefilesizeistoolargerelativetothegeneraltexteditor.Somefunctionistoocomplicated,difficulttograspistheprimaryusers,onlyindailyapplicationways,anotepadjustsomesimpleandpracticalfunctionisenough.Thisprogramisdesignedinaccordancewithsuchademandbydesigningasimplenotepadapplication.TheproceduresinthereportistousewritteninJava,wecanrealizethefunctionofnotepad,referencefunctionofWindowsnotepad.Openthefile,readthetextinthefileinformation.Display,edittextinformation.JavanotepadisaGUIandIOinJavaSEbasictechnique,canrealizethetextsimpleoperations,suchas:openthedocument,editthedocument,savethedocument,etc.

一、系统概述1.1项目背景目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。按照教学培养计划要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。其主要目的是使学生深入理解并实践在本课程中所学的有关java程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等。故此“java记事本”应运而生。1.2任务目标Java记事本程序主要是对文字进行编辑处理的软件。能进行新建、打开、保存等功能。另外还可以根据用户的需要复制剪切相应的文字,实现编辑功能。

本课程设计是为了配合Java程序设计课程,通过面向对象程序设计对自己所学过的的知识加以掌握和运用,使学生深入学习掌握Java语言,熟练运用这个工具而设立的课程。通过课程设计各个项目的综合训练,加强学生对JAVA语言的理解,检验学生对专业理论知识理解及掌握的程度,锻炼学生综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高学生的综合素质,为学生毕业后的实际工作打好基础。1.3开发意义随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。当然对文本编辑操作仍然占据着重要地位,记事本是简单便捷的文本编辑器,可实现对文本编辑操作的基本功能。二、系统需求分析2.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor,UEStudio,GridinSoftNotepad,Notepad++,win32pad,SkimEdit,UniRed,xint。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个的记事本程序。2.2功能设计本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:

(1)菜单中有“文件”,“编辑”两个主菜单。

(2)“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存为文件,退出记事本。

(3)“编辑”中有“全选”“复制”“剪切”“粘贴”四个子菜单:用于全选文字,复制文字,剪切文字,粘贴文字。

三、系统总体设计3.1程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。3.2程序运行界面图1:程序运行界面

打开新建3.3系统功能结构图打开新建文件文件保存保存记事本另存为记事本另存为退出退出主界面编辑主界面编辑图2:系统功能结构图3.4系统数据流程图文字显示文字显示文本文档文本文档打开打开打开主界面打开主界面编辑文本文档编辑文本文档保存保存退出退出图3:系统数据流程图3.5程序相关说明整个记事本分为2快:菜单栏和内容输入区。本程序中首先定义一个mynotepad类继承JFrame作为最底层容器。(1).Textcontent为程序文本输入区。(2).Menu为菜单栏。(3).AboutDialog为关于对话框。(4).要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

四、系统详细设计4.1.初始化组件initTextContent(); initMenu(); initAboutDialog();4.2.构建菜单栏及其下拉菜单JMenu[]menus=newJMenu[]{ newJMenu("文件"), newJMenu("编辑"), newJMenu("关于") JMenuItemoptionofmenu[][]=newJMenuItem[][]{{ newJMenuItem("新建"), newJMenuItem("打开"), newJMenuItem("保存"), newJMenuItem("退出") newJMenuItem("复制"), newJMenuItem("剪切"), newJMenuItem("粘贴"), newJMenuItem("颜色")newJMenuItem("关于")4.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);4.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);4.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();}

五、系统调试分析Java记事本采用的是JavaSE中的GUI和IO基本技术,主界面如下:图4:记事本主界面图5:点击“文件”运行情况图6:“文件”菜单中的“打开”对话框图7:“编辑”中的各项功能

六、总结经过近两周的努力,终于完成了我的Java课程设计——记事本程序,基本实现了所需功能。通过这次的课程设计,使我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。通过该课程设计,收获颇多。首先,让我加深了对Java语言的理论知识的理解;其次,让我更加熟练的掌握了Java语言的设计能力并且有了实践经验;再次,在设计过程中,学到了老师没有在课堂上没有教授的知识;最后,加强了我对Java语言的学习兴趣和好感。参考文献[1]耿详义,张跃平.Java2实用教程.北京:清华大学出版社,2019.2[2]张利国.Java实用教程案例.北京:清华大学出版社,2019.10[3]周晓聪,等.面向对象程序设计及Java语言.北京:机械工业出版社,2019.3[4]李尊朝.Java语言程序设计.北京:中国铁道出版社,2019.2[5](美)PhilipHellerplateJava2CertificationStudyGuideFourthEdition(Java2证学习指南)(第四版英文版).北京:电子工业出版社,2019.1

附:程序清单packagecom;importjava.awt.*;importjava.io.*;importjava.awt.datatransfer.*;importjava.awt.event.*;importjavax.swing.JOptionPane;publicclassMainextendsFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;TextAreatextArea=newTextArea();MenuBarmenuBar=newMenuBar();MenufileMenu=newMenu("文件");MenuItemnewItem=newMenuItem("新建");MenuItemopenItem=newMenuItem("打开");MenuItemsaveItem=newMenuItem("保存");MenuItemsaveAsItem=newMenuItem("另存为");MenuItemexitItem=newMenuItem("退出");MenueditMenu=newMenu("编辑");MenuItemselectItem=newMenuItem("全选");MenuItemcopyItem=newMenuItem("复制");MenuItemcutItem=newMenuItem("剪切");MenuItempasteItem=newMenuItem("粘贴");StringfileName=null;ToolkittoolKit=Toolkit.getDefaultToolkit();ClipboardclipBoard=toolKit.getSystemClipboard();privateFileDialogopenFileDialog=newFileDialog(this,"OpenFile",FileDialog.LOAD);privateFileDialogsaveAsFileDialog=newFileDialog(this,"SaveFileAs",FileDialog.SAVE);publicMain(){setTitle("记事本程序-byzhl");setFont(newFont("TimesNewRoman",Font.PLAIN,12));setBackground(Color.white);setSize(500,350);fileMenu.add(newItem);fileMenu.add(openItem);fileMenu.addSeparator();fileMenu.add(saveItem);fileMenu.add(saveAsItem);fileMenu.addSeparator();fileMenu.add(exitItem);editMenu.add(selectItem);editMenu.addSeparator();editMenu.add(copyItem);editMenu.add(cutItem);editMenu.add(pasteItem);menuBar.add(fileMenu);menuBar.add(editMenu);setMenuBar(menuBar);add(textArea);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);newItem.addActionListener(this);openItem.addActionListener(this);saveItem.addActionListener(this);saveAsItem.addActionListener(this);exitItem.addActionListener(this);selectItem.addActionListener(this);copyItem.addActionListener(this);cutItem.addActionListener(this);pasteItem.addActionListener(this);publicvoidactionPerformed(ActionEvente){//监听事件ObjecteventSource=e.getSource();if(eventSource==newItem){textArea.setText("");}elseif(eventSource==openItem){openFileDialog.show();fileName=openFileDialog.getDirectory()+openFileDialog.getFile();if(fileName!=null)readFile(fileName);}elseif(eventSource==saveItem){if(fileName!=null)writeFile(fileName);}elseif(eventSource==saveAsItem){saveAsFileDialog.show();fileName=saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();if(fileName!=null)writeFile(fileName);}elseif(eventSource==selectItem){textArea.selectAll();}elseif(eventSource==copyItem){Stringtext=textArea.getSelectedText();StringSelectionselection=newStringSelection(text);clipBoard.setContents(selection,null);}elseif(eventSource==cutItem){Stringtext=textArea.getSelectedText();StringSelectionselection=newStringSelection(text);clipBoard.setContents(selection,null);textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());}elseif(eventSource==pasteItem){Transferablecontents=clipBoard.getContents(this);if(contents==null)return;Stringtext;text="";try{text=(String)contents.getTransferData(DataFlavor.stringFlavor);}catch(ExceptionException){textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());}elseif(eventSource==exitItem){System.exit(0);classchazextendsDialogimplementsActionListener{//查找事件处理类Stringwenben;TextAreata;booleanflg=false;intlen;intstart=0;intk=0;Labels=newLabel("查找的字符串");Labely=newLabel("替代的字符串");TextFieldsr=newTextField(10);TextFieldth=newTextField(10);Buttonc1=newButton("查找");Buttonc2=newButton("替换");publicchaz(TextAreata){super(newFrame(),"查找或替换");this.ta=ta;Panelpan1=newPanel();Panelpan2=newPanel();//pan1.setLayout(BoxLayout);//pan2.setLayout(BoxLayout);pan1.add(s);pan1.add(sr);pan1.add(c1);pan2.add(y);pan2.add(th);pan2.add(c2);setResizable(false);setBounds(200,200,300,100);add(pan1,BorderLayout.NORTH);add(pan2,BorderLayout.SOUTH);c1.addActionListener(this);c2.addActionListener(this);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){chaz.this.dispose();setVisible(true);sr.addKeyListener(newKeyListener(){publicvoidkeyReleased(KeyEvente){start=0;k=0;flg=false;}publicvoidkeyPressed(KeyEventel){}publicvoidkeyTyped(KeyEventei){}publicvoidactionPerformed(ActionEvente){//查找替换事件处理方法Stringske=sr.getText();wenben=ta.getText();Stringtke=th.getText();if(e.getSource()==c1)c1.setLabel("下一个");if(ske!=null)len=ske.length();start=wenben.indexOf(ske,k);k=start+len;ta.se

温馨提示

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

评论

0/150

提交评论