*******************实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期Java 课程设计题目:记事本系统设计专业班级:姓名:学号:指导教师:成绩:目录摘要 (1)序言 (2)正文 (3)1.系统设计与分析 (3)2.详细设计 (3)3.系统测试 (14)4.软件使用说明书 (17)设计总结 (18)参考文献 (19)致谢 (20)附录(程序源代码) (21)摘要本次课程设计的题目是用java语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
关键字:记事本程序;Java语言;Jcreator序言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是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。
正文1.系统设计与分析该课程设计报告里的简易记事本程序是使用Java程序设计语言编写的,要求实现记事本的基本功能,参考了windows中记事本的一些功能。
要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。
概要设计系统主要功能本程序是利用java程序设计语言编写的一个简单的记事本程序。
可以通过菜单栏和工具栏实现以下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。
1.运行环境要求(1) 实现设计的系统硬件需求硬件配置的基本要求:* 586以上的计算机* 32MB以上的内存* 彩色显示器* 3.5寸高密软盘驱动器* 光盘驱动器* 4G以上硬盘空间* 鼠标(2) 实现设计的系统软件* WINDOWS95或WINDOWS98* Jcreator Pro全套软件2.详细设计设计思路:设计一个EditorDemo类,继承自JFrame类,并在EditorDemo类利用JtextPane创建面板窗口textPane,利用Jlabel创建状态栏 statusBar,利用JFileChooser 创建文件选择器filechooser,利用JMenuBar创建并实例化菜单栏,利用JToolBar创建工具栏,再通过一些具体方法实现各功能键的功能。
建立构造函数public EditorDemo();通过该构造函数实现记事本程序的主要功能,运行时在主类中通过调用该构造函数来实现对记事本程序的基本操作。
1:窗口设计在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。
public class EditorDemo extends JFrameJTextPane textPane = new JTextPane(); //创建文本窗格,编辑窗口JFileChooser filechooser = new JFileChooser(); //文件选择器setJMenuBar(createJMenuBar(actions)); //设置菜单栏Container container = getContentPane(); //得到容器container.add(createJToolBar(actions), BorderLayout.NORTH); //工具栏container.add(textPane, BorderLayout.CENTER); //增加文本窗格2:功能设计(1)在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。
点击不同菜单项时,显示不同接口。
private JMenuBar createJMenuBar(Action[] actions) //创建菜单栏JMenuBar menubar = new JMenuBar(); //实例化菜单栏JMenu menuFile = new JMenu("文件(F)"); //实例化菜单JMenu menuEdit = new JMenu("编辑(E)");JMenu menuFormat = new JMenu("格式(O)");JMenu menuFind = new JMenu("查找(V)");JMenu menuAbout = new JMenu("帮助(H)");menuFile.add(new JMenuItem(actions[0])); //增加新菜单项menuFile.add(new JMenuItem(actions[1]));menuFile.add(new JMenuItem(actions[2]));menuFile.addSeparator();menuFile.add(new JMenuItem(actions[7]));menuEdit.add(new JMenuItem(actions[3]));menuEdit.add(new JMenuItem(actions[4]));menuEdit.add(new JMenuItem(actions[5]));menuAbout.add(new JMenuItem(actions[6]));menubar.add(menuFile); //增加菜单menubar.add(menuEdit);menubar.add(menuFormat);menubar.add(menuFind);menubar.add(menuAbout); return menubar; //返回菜单栏如下图:(2)加入工具栏的功能键,通过工具栏实现对文本的基本操作。
Action[] actions = //Action数组,各种操作命令new NewAction(),new OpenAction(),new SaveAction(),new CutAction(),new CopyAction(),new PasteAction(),new AboutAction(),new ExitAction(),private JToolBar createJToolBar(Action[] actions) //创建工具条JToolBar toolBar = new JToolBar(); //实例化工具条JButton bt = new JButton(actions[i]); //实例化新的按钮toolBar.add(bt); //增加按钮到工具栏如图所示:(3)对每个菜单项进行注册监听。
点击不同功能键时,实现不同的操作,显示不同的窗口。
主要实现方法代码如下:class NewAction extends AbstractAction { //实现新建文件命令功能public NewAction() {super("新建文本");}public void actionPerformed(ActionEvent e) {textPane.setDocument(new DefaultStyledDocument()); //清空文档}}class OpenAction extends AbstractAction { //实现打开文件命令功能public OpenAction() {super("打开文本");}public void actionPerformed(ActionEvent e) {int i = filechooser.showOpenDialog(EditorDemo.this);//显示打开文件对话框if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中打开选项File f = filechooser.getSelectedFile(); //得到选择的文件try {InputStream is = new FileInputStream(f); //得到文件输入流textPane.read(is, "d"); //读入文件到文本窗格} catch (Exception ex) {ex.printStackTrace(); //输出出错信息}}}}如下图:class SaveAction extends AbstractAction { //实现保存文本命令public SaveAction() {super("保存文本");}public void actionPerformed(ActionEvent e) {int i = filechooser.showSaveDialog(EditorDemo.this);//显示保存文件对话框if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中保存按钮File f = filechooser.getSelectedFile(); //得到选择的文件try {FileOutputStream out = new FileOutputStream(f);//得到文件输出流out.write(textPane.getText().getBytes()); //写出文件} catch (Exception ex) {ex.printStackTrace(); //输出出错信息}}}}如下图:class ExitAction extends AbstractAction { //实现退出命令public ExitAction() {super("退出系统");}public void actionPerformed(ActionEvent e) {System.exit(0); //退出程序}}class CutAction extends AbstractAction { //实现剪切命令public CutAction() {super("剪切");}public void actionPerformed(ActionEvent e) {textPane.cut(); //调用文本窗格的剪切命令}} class CopyAction extends AbstractAction { //实现拷贝命令public CopyAction() {super("拷贝");}public void actionPerformed(ActionEvent e) {textPane.copy(); //调用文本窗格的拷贝命令class PasteAction extends AbstractAction { //实现粘贴命令public PasteAction() {super("粘贴");}public void actionPerformed(ActionEvent e) {textPane.paste(); //调用文本窗格的粘贴命令}} class AboutAction extends AbstractAction { //关于版本命令public AboutAction() {super("版本");}public void actionPerformed(ActionEvent e) {String str="简易记事本\n\版本:1.0\n作者:郭孔明\n主要功能:实现简单文本编辑。