当前位置:文档之家› JAVA-课程设计(大作业)报告

JAVA-课程设计(大作业)报告

课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:设计一个记事本院系:信息技术学院班级:设计者:学号:指导教师:设计时间:信息技术学院昆明学院课程设计(大作业)任务书简单记事本程序的设计目录一.题目分析 (5)1.1需求分析 (5)1.2功能要求设计 (5)二.总体设计 (5)2.1设计思路 (5)2.2运行界面 (6)2.3模块说明图 (6)2.4主流程图 (7)2.5 UML图 (7)2.6程序相关说明 (8)三.运行环境 (8)四.详细设计与分析 (8)4.1.初始化组件 (8)4.2.构建菜单栏及其下拉菜单 (8)4.3.“文件”菜单的事件监听 (9)4.5.异常处理 (10)五.调试分析 (12)六.总结 (13)七.参考文献 (14)附录(源代码) (14)一.题目分析1.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。

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

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

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

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

该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。

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

1.2功能要求设计设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能,可扩展功能。

本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:5)菜单中有“文件”,“编辑”,“关于”三个主菜单。

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

7)“编辑”中有“剪切”“复制”“粘贴”“颜色”四个子菜单:用于剪切文字,复制文字,粘贴文字增加了“颜色”子菜单来对文字的颜色进行设置。

8)“关于”菜单中有关于记事本程序的制作日期,作者等信息,功能可自行增加。

提示:用图形用户界面实现,使用文件输入输出流。

二.总体设计2.1设计思路在本程序中,设计了一个菜单栏和文本内容区。

设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。

JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。

JTextPane主要用来输入文本。

为了加入颜色的设置,所以加了一个JColorChooser组件。

2.2运行界面2.3模块说明图图1在图1中,首先创建一个名为mynotepad 的类并继承JFrame 类作为最底层的容器。

图2在图2中,构造一个mynotepad类时要做三件事情,分别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。

2.4主流程图图32.5 UML图2.6程序相关说明整个记事本分为2块:菜单栏和内容输入区。

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

1)Textcontent为程序文本输入区。

2)Menu为菜单栏。

3)AboutDialog为关于对话框。

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

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

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

另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

三.运行环境windows XP , EditPlus 3 , jdk-1_5_0-windows-i586.exe四.详细设计与分析4.1.初始化组件initTextContent();initMenu();initAboutDialog();4.2.构建菜单栏及其下拉菜单/*菜单栏的各个菜单项显示*/JMenu[] menus=new JMenu[]{new JMenu("文件(F)"),new JMenu("编辑(E)"),new JMenu("帮助(H)")};/*“文件”菜单项的四个下拉菜单*/JMenuItem optionofmenu[][]=new JMenuItem[][]{{new JMenuItem("新建(N)"),new JMenuItem("打开(O)"),new JMenuItem("保存(S)"),new JMenuItem("退出(X)")},/*编辑菜单的四个下拉菜单*/{new JMenuItem("复制(C) Ctrl+C"),new JMenuItem("剪切(T) Ctrl+X"),new JMenuItem("粘贴(P) Ctrl+V"),new JMenuItem("颜色…")},{new JMenuItem("关于记事本(A)")}};4.3.“文件”菜单的事件监听ActionListener action=new ActionListener(){ //添加事件监听public void actionPerformed(ActionEvent e){String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if("新建(N)".equals(name)){ //监听“新建”事件content.setText("");file=null;}else if("打开(O)".equals(name)){ //监听“打开”事件if(file !=null)openfile.setSelectedFile(file);int returnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile(); /*打开选择文件*/ unfold();}}else if("保存(S)".equals(name)){ /*监听“保存”事件*/if(file!=null)openfile.setSelectedFile(file);int returnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}}else if("退出(X)".equals(name)){ /*监听“退出”事件*/mynotepad f=new mynotepad();int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION); /*提示用户是否退出*/if(s==JOptionPane.YES_OPTION)System.exit(0);}4.4.“编辑”菜单的事件监听else if("剪切(T) Ctrl+X".equals(name)){ /*监听“剪切”事件*/content.cut();}else if("复制(C) Ctrl+C".equals(name)){ /*监听“复制”事件*/content.copy();}else if("粘贴(P) Ctrl+V".equals(name)){ /*监听“粘贴”事件*/content.paste();}else if("颜色".equals(name)){ /*监听“颜色…”事件*/color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color); /*对颜色进行设置*/}else if("关于记事本(A)".equals(name)){ /*监听“关于”事件*/about.setSize(300,150); /*设置“关于”对话框大小为300×150*/about.show(); /*显示“关于”对话框*/}4.5.异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。

本程序中选用的异常处理机制是try,catch。

捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。

void saving(){try{FileWriter Writef=new FileWriter(file); /*创建文件写入器*/ Writef.write(content.getText());Writef.close();}catch(Exception e){e.printStackTrace();}}void unfold(){try{FileReader Readf=new FileReader(file); /*文件读入*/int len=(int)file.length();char []buffer=new char[len];Readf.read(buffer,0,len);Readf.close();content.setText(new String(buffer));}catch(Exception e){e.printStackTrace();}}五.调试分析图4:点击“文件”运行情况图5:“文件”菜单中的“打开”对话框图6:“编辑”中的“颜色”设置功能图7:“关于”对话框图8:“退出”对话框六.总结经过差不多一个星期的努力,基本上完成我的Java课程设计——简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。

相关主题