简单的记事本程序java编写
- 格式:doc
- 大小:378.00 KB
- 文档页数:13
华北科技学院计算机系 软 件 报 告
课程名称 Java程序设计A 实验学期 2010 至 2011 学年 第 二 学期 学生所在系部 管理系 年级 三 专业班级 电子商务B09-2 学生姓名 张莉 学号 任课教师 实验成绩
计算机系制 华北科技学院计算机系报告
第 1 页 《Java程序设计A》课程考试报告 开课实验室:软件开发实验室 年 月 日 实验题目 简易记事本软件
一、实验目的
a) 掌握面向对象程序设计基本要素(封装、继承、多态) b) 掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法 c) 掌握基于AWT的图形用户界面设计 i. 常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、滚动条等。 ii. 事件处理机制 d) 掌握布局、对话框的使用 e) 掌握发布JAVA应用程序 二、设备与环境 PC兼容机、Windows操作系统、JAVA集成开发环境。 三、实验内容
1. 完成记事本的需求分析。 2. 记事本的总体设计,列出主要的类和类间关系。 3. 列出具体的实现代码。 4. 写出程序的实现细节,主要得功能界面,实现说明。 5. 写出总结和评价
四、实验结果及分析 1. 需求分析 本程序是一个简单的记事本程序,其主要结构参照了Windows操作系统的记事本工具。能够实现一些基本功能,主要有: (1) 具有编辑界面,能够实现文本的输入、删除等基本功能。 华北科技学院计算机系报告 第 2 页 (2) 具有菜单条,包含三个主菜单:文件、编辑、帮助。 (3) 各个主菜单分别拥有其菜单选项。 (4) 文件主菜单含有新建、打开、保存、另存为、退出五个菜单选项; (5) 编辑主菜单含有剪切、粘贴、复制、全选四个菜单选项。 (6) 帮助主菜单好友关于记事本信息的菜单选项,主要记录了记事本文件 的基本信息。 (7) 各个菜单选项能够实现其对应的功能。 (8) 实现剪切、复制、粘贴、全选即编辑菜单的鼠标跳出菜单功能。 (9) 各功能具有快捷键。
2. 软件设计 (1)记事本的主体页面设计图:
(2)程序设计思想 ① 首先设计出整个记事本的主体框架,添加菜单栏(JMenu),添加菜单选项(JMenuItem)。 这部分应用到了Container、JMenuBar、JMenu、JMenuItem的构造方法,实现对记事本的基本页面设计。 ② 在页面中添加编辑局域,应用了JTextArea的构造方法。 华北科技学院计算机系报告 第 3 页 ③ 实现各个菜单选项的功能。在具体的功能实现中,为每一个功能设计了一个类,通过监听调用类方法实现所需要实现的功能。 ④ 程序中的类以及它们之间的关系: 本程序总共含有9个类: Notebook()主类:他实现了记事本的基本框架构造,以及对记事本各个功能的监听,并且调用各个功能的类方法。在Notebook()中,加入了编辑菜单的弹出菜单功能。 在Notebook()主类中,通过事件监听调用了剪切、复制、保存等功能的类方法: NewActionListener():实现“新建”功能的类 SaveActionListener():实现“保存”功能的类 OpenActionListener():实现“打开”功能的类 ExitActionListener():实现“退出”功能的类 CutActionListener():实现“剪切”功能的类 CopyActionListener():实现“粘贴”功能的类 SallActionListener():实现“全选”功能的类 AbouthActionListener():实现“关于”功能的类 整个程序框架:
添加事件监Notebook() 初始化界面 组件 菜单栏 文件 编辑 帮助 新建 打开 保存 退出 剪切 复制 粘贴 全选 关于 另存
文字输入区 华北科技学院计算机系报告 第 4 页 3. 程序代码 主函数: import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class MyNotebook{ public static void main(String args[]){ new Notebook(); }}
Notebook()主类: import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class Notebook extends JFrame { Container container; JFileChooser fc=new JFileChooser(); File file=null; JMenuBar mb; JMenu fileMenu,editMenu,helpMenu; JMenuItem newItem,openItem,saveItem,saveasItem,exitItem,cutItem,copyItem,pasteItem,sallItem,aboutItem; JTextArea jta; JPopupMenu popUpMenu;
public Notebook() { //记事本主界面设计程序// setTitle("记事本"); container=this.getContentPane(); container.setLayout(new BorderLayout()); jta=new JTextArea(); container.add(jta); setVisible(true); setSize(650, 450); mb=new JMenuBar(); setJMenuBar(mb);
//文件菜单及其菜单选项的程序设计// fileMenu=new JMenu("文件"); newItem=new JMenuItem("新建"); //设置快捷键// newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N ,ActionEvent.CTRL_MASK)); 华北科技学院计算机系报告 第 5 页 //设置“新建”事件监听// newItem.addActionListener(new NewActionListener()); fileMenu.add(newItem); fileMenu.addSeparator(); openItem=new JMenuItem("打开");
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O ,ActionEvent.CTRL_MASK)); openItem.addActionListener(new OpenActionListener()); fileMenu.add(openItem); fileMenu.addSeparator(); saveItem=new JMenuItem("保存");
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S ,ActionEvent.CTRL_MASK)); saveItem.addActionListener(new SaveActionListener()); fileMenu.add(saveItem); fileMenu.addSeparator(); saveasItem=new JMenuItem("另存为");
saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A ,ActionEvent.CTRL_MASK)); saveasItem.addActionListener(new SaveActionListener()); fileMenu.add(saveasItem); fileMenu.addSeparator(); exitItem=new JMenuItem("退出");
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E ,ActionEvent.CTRL_MASK)); exitItem.addActionListener(new ExitActionListener()); fileMenu.add(exitItem); mb.add(fileMenu);
//编辑菜单栏及其菜单选项程序设计// editMenu=new JMenu("编辑"); cutItem=new JMenuItem("剪切"); cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)); cutItem.addActionListener(new CutActionListener()); editMenu.add(cutItem); editMenu.addSeparator(); copyItem=new JMenuItem("复制"); copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK)); copyItem.addActionListener(new CopyActionListener()); editMenu.add(copyItem); editMenu.addSeparator(); pasteItem=new JMenuItem("粘贴"); pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK)); pasteItem.addActionListener(new PasteActionListener()); editMenu.add(pasteItem); editMenu.addSeparator();