当前位置:文档之家› java记事本课程设计论文附源码

java记事本课程设计论文附源码

设计题目:记事本课程设计专业:电子信息科学与技术班级:电子1202班学号:****************2015 年7月XXX学院本科学生课程设计任务书摘要目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。

此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。

此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。

该程序主要用到了Java swing和事件监听等。

关键词记事本程序,java语言,Java swing目录摘要 (1)1 需求分析 (3)1.1需求分析 (3)1.2功能设计 (3)2 概要分析 (4)2.1概要设计思想 (4)2.2程序运行界面 (4)2.3程序模块说明 (4)2.4流程图 (5)2.5程序相关说明 (6)3 程序详细设计与分析 (8)3.1构建菜单栏及其下拉菜单 (8)3.2“文件”菜单操作的事件监听 (8)3.3“编辑”、“格式”等菜单的事件监听 (10)3.4异常处理 (11)4 测试分析 (12)5 源程序清单 (15)结论 (22)参考文献 (23)1 需求分析1.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。

功能也是应有尽有,有能改变字体的,有能改变文字颜色的。

但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。

仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。

本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。

1.2功能设计本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。

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

3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。

全部选择,插入日期、时间。

4、“格式”菜单中有“自动换行”和“字体”两个子菜单。

5、“查看”菜单只是显示状态栏。

6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

2 概要分析2.1概要设计思想在本程序中,设计了一个菜单栏和文本内容区。

设计过程中用到了JMenu,JMenuItem等。

JMenu用来制作菜单,菜单包括“文件”“编辑”“格式”“查看”“帮助”。

JMenuItem主要用来制作主菜单下面的子菜单。

2.2程序运行界面图2.1 记事本程序运行界面2.3程序模块说明ActionListenerimplementsNotepad图2.2 类Notepad模块图2.3 程序详细模块2.4流程图图2.4 程序流程图2.5程序相关说明整个记事本分为2快:菜单栏和内容输入区。

本程序中首先定义一个Notepad 类继承JFrame作为最底层容器。

(1)、text为程序文本输入区。

(2)、Menu为菜单栏。

(3)、要想记事本完成需求分析中相应的功能,还必须添加事件监听器。

事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。

本程序中Listen 和Listen1实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。

3 程序详细设计与分析3.1构建菜单栏及其下拉菜单JMenu files=new JMenu("文件(F)");JMenu edit=new JMenu("编辑(E)");JMenu formats=new JMenu("格式(O)");JMenu scan=new JMenu("查看(V)");JMenu help=new JMenu("帮助(H)");JMenuItem newFile=new JMenuItem("新建(N)");JMenuItem open=new JMenuItem("打开(O)...");JMenuItem save=new JMenuItem("保存(S)");JMenuItem saveAs=new JMenuItem("另存为(A)...");JMenuItem exit=new JMenuItem("退出(X)");JMenuItem undo=new JMenuItem("撤销(U)");JMenuItem cut=new JMenuItem("剪切(T)");JMenuItem copy=new JMenuItem("复制(C)");JMenuItem paste=new JMenuItem("粘贴(P)");JMenuItem selectAll=new JMenuItem("全选(A)");JMenuItem timeDate=new JMenuItem("时间/日期(D)");JCheckBoxMenuItem lineWrap=new JCheckBoxMenuItem("自动换行(M)");JMenuItem fonts=new JMenuItem("字体...");JMenuItem status=new JMenuItem("状态栏");JMenuItem about=new JMenuItem("关于记事本(A)");3.2“文件”菜单操作的事件监听class Listen1 implements ActionListener{//实现用于对文件进行操作的事件侦听器public void actionPerformed(ActionEvent e){Object source=e.getSource();//打开文件事件if(source==open){FileDialog openFile=new FileDialog(th,"打开文件...",FileDialog.LOAD);openFile.setVisible(true);StringfilePath=openFile.getDirectory()+openFile.getFile();try{FileInputStream fis=newFileInputStream(filePath);byte [] content=new byte[fis.available()];fis.read(content);text.setText(new String(content));text.setCaretPosition(0);if(openFile.getFile()!=null){th.setTitle(openFile.getFile()+name);openedPath=filePath;opened=true;}fis.close();}catch(Exception ex){ex.printStackTrace();}opened=true;}//保存及另存为事件else if(source==save||source==saveAs){String savePath=openedPath;if(savePath==null||source==saveAs){FileDialog saveFile=new FileDialog(th,"保存文件...",FileDialog.SAVE);saveFile.setVisible(true);savePath=saveFile.getDirectory()+saveFile.getFile();}try{FileOutputStream fos=newFileOutputStream(savePath);fos.write(text.getText().getBytes());fos.close();}catch(Exception ex){ex.printStackTrace();}if(source==save)openedPath=savePath;}}}3.3“编辑”、“格式”等菜单的事件监听class Listen implements ActionListener{//实现用于一般操作的事件侦听器public void actionPerformed(ActionEvent e){Object source=e.getSource();if(source==newFile){text.setText("");th.setTitle(name);openedPath=null;opened=false;}else if(source==exit)System.exit(0);else if(source==selectAll)text.selectAll();else if(source==cut)text.cut();else if(source==copy)text.copy();else if(source==paste)text.paste();else if(source==lineWrap)text.setLineWrap(!text.getLineWrap());else if(source==about){String message="java 记事本\n版本 0.01\n版权所有2013 pzhjsj\n\n本产品符合最终用户许可协议,授权给:\npzhjsj\n";JOptionPane.showMessageDialog(th,message,"关于记事本",JOptionPane.PLAIN_MESSAGE);}else if(source==timeDate){Date nowTime=new Date();SimpleDateFormat times=new SimpleDateFormat("HH:mm yyyy-MM-dd");text.insert(times.format(nowTime),text.getCaretPosition());}}}3.4异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。

相关主题