1、Java课程设计报告记事本源代码有流程图Java课程设计报告记事本源代码有流程图Java课程设计报告 题 目:简单记事本程序的设计 年级专业:计算机科学与技术 学 号: 学生姓名: 指导老师: 完成时间:2010年 6月 8 日 第 1 页 共 11 页 摘要 . 1 前言 . 2 1需求分析 . 2 1.1需求分析 . 2 1.2功能设计 . 3 2.概要设计 . 3 2.1程序设计思路 . 3 2.2程序运行界面 . 3 2.3模块说明图 . 4 2.4程序流程图 . 5 2.5程序相关说明 . 6 3.程序详细设计与分析 . 6 3.1.初始化组件 . 6 3.2.构建菜单栏及其下拉菜单
2、 . 6 3.3.“文件”菜单的事件监听 . 7 3.4.“编辑”菜单的事件监听 . 8 3.5.异常处理 . 9 4(测试分析 . 10 5(源程序清单 . 错误未定义书签。12 6(课程设计总结 . 17 参考文献 . 17 第 2 页 共 11 页 简单记事本程序的设计 前言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及
3、移动等各个领域。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
4、 Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。 2.3模块说明图 ActionListener implements mynotepad extends JFrame 图1 在图1中,首先创建一个名为mynotepad的类并继承JFrame类作为最底层的容器。 mynotepad 的构造方法 添加事件监初始化容组件 听 器 初始化 初始化 菜单栏 文字输入
5、区 第 3 页 共 11 页 关于 文件 编辑 新打保退剪复粘颜关图2 建 开 存 出 切 制 贴 色 于 在图2中,构造一个mynotepad类时要做三件事情,分别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。 2.4程序流程图 启动程序 输入文字 False False 新打保退剪复粘颜关 建 开 存 出 切 制 贴 色 于 true true true true true true true true file=null about.show() file=openfile color saving con
6、tent.paste System.exit(0) content.copy() content.cut() 关闭或退出程序 图3 第 4 页 共 11 页 3.5.异常处理 在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。本程序中选用的异常处理机制是try,catch。捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。 saving() try FileWriter Writef=new FileWriter(file); Writef.write(content.getText(); Writef.c
7、lose(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); 第 5 页 共 11 页 6(课程设计总结 经过差不多
8、两个星期的努力,基本上完成我的Java课程设计简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,本来一开始想给这个记事本程序加上一张背景图片,以及添加字体设置功能,但是由于本人知识浅陋以及各
9、种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。 参考文献 1.孙全党 王吴迪 赵枫朝,Java程序设计应用教程,电子工业出版社,2006.2 2.雷之宇,Java项目开发实践网络篇,中国铁道出版社,2005.5 3.赵玉阳,Java从入门到精通,清华大学出版社,2006.8 4.李茏怡,Java编程实例讲解,高等教育出版社,2005.11 完整代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class mynotepad extends JFrame
10、File file=null; Color color=Color.red; mynotepad() initTextContent(); initMenu(); initAboutDialog(); 第 6 页 共 11 页 void initTextContent() getContentPane().add(new JScrollPane(content); JTextPane content=new JTextPane(); JFileChooser openfile=new JFileChooser(); JColorChooser opencolor=new JColorChoos
11、er(); JDialog about=new JDialog(this); JMenuBar menu=new JMenuBar(); JMenu menus=new JMenu new JMenu(文件), new JMenu(编辑), new JMenu(关于) ; JMenuItem optionofmenu=new JMenuItem new JMenuItem(新建), new JMenuItem(打开), new JMenuItem(保存), new JMenuItem(退出) , new JMenuItem(复制), new JMenuItem(剪切), new JMenuIt
12、em(粘贴), new JMenuItem(颜色) , 第 7 页 共 11 页 new JMenuItem(关于) ; void initMenu() for(int i=0;imenus.length;i+) menu.add(menusi); for(int j=0;joptionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener( action ); this.setJMenuBar(menu); ActionListener action=new ActionListener(
13、) public void actionPerformed(ActionEvent e) String name = e.getActionCommand(); JMenuItem MI=(JMenuItem)e.getSource(); if(新建.equals(name) content.setText(); file=null; else if(打开.equals(name) if(file !=null)openfile.setSelectedFile(file); int returnVal=openfile.showOpenDialog(mynotepad.this); if(re
14、turnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); unfold(); else if(保存.equals(name) 第 8 页 共 11 页 if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); saving
15、(); else if(退出.equals(name) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,退出,退出,JOptionPane.YES_NO_OPTION); if(s=JOptionPane.YES_OPTION) System.exit(0); else if(剪切.equals(name) content.cut(); else if(复制.equals(name) content.copy(); else if(粘贴.equals(name) content.paste(); else i
16、f(颜色.equals(name) color=JColorChooser.showDialog(mynotepad.this,color); content.setForeground(color); else if(关于.equals(name) about.setSize(300,150); about.show(); ; 第 9 页 共 11 页 void saving() try FileWriter Writef=new FileWriter(file); Writef.write(content.getText(); Writef.close(); catch(Exception
17、 e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); void initAboutDialog() about.setLayout(new GridLay
18、out(3,1); about.getContentPane().setBackground(Color.white); about.getContentPane().add(new JLabel(我的记事本程序); about.getContentPane().add(new JLabel(制作者:liuhui); about.getContentPane().add(new JLabel(2010年6月); about.setModal(true); 第 10 页 共 11 页 about.setSize(100,100); about.setLocation(250,170); ; public class Notepad public static void main(String args) mynotepad noted=new mynotepad(); noted.addWindowListener(new WindowAdapter() ); noted.setTitle(我的记事本程序); noted.setSize(640,320); noted.show(); noted.setLocation(150,100); 第 11 页 共 11 页