版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院计算机学院课程综合作业实 验 报 告 课程名称 Java大学实用教程 实验学期 2012 至 2013 学年 第 一 学期学生所在系部 计算机学院 年级 2011 专业班级 信管B11-x 学生姓名 xxx 学号 xxxxxxxxxxx 任课教师 王养廷 实验成绩 计算机学院制JAVA程序设计课程综合作业实验报告开课实验室: 基础四 2012 年 12 月 20 日实验题目用java编写简单记事本一、 实验目的a) 掌握面向对象程序设计基本要素(封装、继承、多态)b) 掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法c) 掌握基于AWT的图形用户界面设计i. 常用标准控件
2、的使用,如标签、按钮、菜单、文本框、单选按钮、滚动条等。ii. 事件处理机制d) 掌握布局、对话框的使用e) 掌握发布JAVA应用程序二、 设备与环境硬件:多媒体计算机软件:Windows 2000以上的操作系统、JAVA集成开发环境三、 实验内容1完成记事本的需求分析。 2记事本的总体设计,列出主要的类和类间关系。 3列出具体的实现代码。 4写出程序的实现细节,主要得功能界面,实现说明。 5写出总结和评价。四、实验结果及分析1.实验分析 本程序是一个简单的记事本程序,其主要结构参照了Windows操作系统的记事本工具。能够实现一些基本功能,主要有:(1) 具有编辑界面,能够实现文本的输入、删
3、除等基本功能。(2) 具有菜单条,包含三个主菜单:文件、编辑、帮助。(3) 各个主菜单分别拥有其菜单选项。(4) 文件主菜单含有新建、打开、保存、另存为、退出五个菜单选项;(5) 编辑主菜单含有剪切、粘贴、复制、全选四个菜单选项。(6) 帮助主菜单好友关于记事本信息的菜单选项,主要记录了记事本文件 的基本信息。(7) 各个菜单选项能够实现其对应的功能。(8) 实现剪切、复制、粘贴、全选即编辑菜单的鼠标跳出菜单功能。(9) 各功能具有快捷键。2.程序设计思想 首先设计出整个记事本的主体框架,添加菜单栏(JMenu),添加菜单选项(JMenuItem)。 这部分应用到了Container、JMen
4、uBar、JMenu、JMenuItem的构造方法,实现对记事本的基本页面设计。 在页面中添加编辑局域,应用了JTextArea的构造方法。 实现各个菜单选项的功能。在具体的功能实现中,为每一个功能设计了一个类,通过监听调用类方法实现所需要实现的功能。 程序中的类以及它们之间的关系: 本程序总共含有9个类:Notebook()主类:他实现了记事本的基本框架构造,以及对记事本各个功能的监听,并且调用各个功能的类方法。在Notebook()中,加入了编辑菜单的弹出菜单功能。在Notebook()主类中,通过事件监听调用了剪切、复制、保存等功能的类方法:NewActionListener():实现“
5、新建”功能的类SaveActionListener():实现“保存”功能的类OpenActionListener():实现“打开”功能的类ExitActionListener():实现“退出”功能的类CutActionListener():实现“剪切”功能的类CopyActionListener():实现“粘贴”功能的类SallActionListener():实现“全选”功能的类AbouthActionListener():实现“关于”功能的类添加事件监听Notebook()初始化界面组件菜单栏文件编辑帮助新建打开保存退出剪切复制粘贴全选关于另存3.程序整体框架 文字输入区4.程序代码imp
6、ort java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class MyNotebook public static void main(String args) new Notebook();/Notebook()主类: class Notebook extends JFrame Container container;JFileChooser fc=new JFileChooser(); File file=null; JMenuBar mb; JMenu fileMenu,ed
7、itMenu,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 JTextAre
8、a();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); /设置“新建”事件监听/newItem.add
9、ActionListener(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.addSepa
10、rator(); 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(
11、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.add
12、ActionListener(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 CutActionListene
13、r();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(&q
14、uot;粘贴");pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteItem.addActionListener(new PasteActionListener();editMenu.add(pasteItem);editMenu.addSeparator();sallItem=new JMenuItem("全选");sallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_
15、M, ActionEvent.CTRL_MASK);sallItem.addActionListener(new SallActionListener();editMenu.add(sallItem);mb.add(editMenu);/帮助菜单栏及其菜单选项程序设计/helpMenu=new JMenu("帮助");aboutItem=new JMenuItem("关于记事本");aboutItem.addActionListener(new AbouthActionListener();helpMenu.add(aboutItem);mb.add(h
16、elpMenu);/编辑菜单的鼠标监听及其弹出菜单的功能设计/popUpMenu = editMenu.getPopupMenu();jta.addMouseListener( new MouseAdapter() public void mouseReleased(MouseEvent e) if(e.getButton() = MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY(); public void mouseClicked(MouseEvent e) if(e.getButton() = MouseEvent
17、.BUTTON1) popUpMenu.setVisible(false); ); /“新建”功能的实现/class NewActionListener implements ActionListener public void actionPerformed(ActionEvent e) jta.setText(""); file=null; /“保存功能的实现”/class SaveActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file!=nul
18、l) fc.setSelectedFile(file); int returnVal=fc.showSaveDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); saving(); void saving() try FileWriter Writef=new FileWriter(file); Writef.write(jta.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); /“打
19、开”功能的实现/class OpenActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file !=null)fc.setSelectedFile(file); int returnVal=fc.showOpenDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); unfold(); void unfold() try FileReader Re
20、adf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); jta.setText(new String(buffer); catch(Exception e)e.printStackTrace(); /“退出”功能的实现/class ExitActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) setVi
21、sible(false); dispose(); System.exit(0);/“剪切”功能的 实现/class CutActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.cut();/“复制”功能的实现/class CopyActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.copy();/“粘贴”功能的实现/class PasteActionLis
22、tener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.paste();/“全选”功能的实现/class SallActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.setSelectionStart(0);jta.setSelectionEnd(jta.getText().length();/“关于”功能的实现/class AbouthActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) String msg = "这是一个记事本 制作者:郭金龙"String t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农产品供应链合同协议(产地直供)
- 教学行为的艺术
- 2025药师考试题及答案
- 2025年市场营销大赛试题及答案
- 2025年设备监理师之设备工程监理基础及相关知识自我检测试卷附答案
- 建筑起重司索信号工考试题与答案
- 从基础到精通调墨技术的学习规划建议
- 企业文化数字化建设推进计划
- 体育场馆活动策划与执行总结
- 无人机装调检修工中级工具使用手册
- 食品加工企业的成本控制策略
- 2025年中国光敏药物行业市场前景预测及投资价值评估分析报告
- T/CECS 10400-2024固废基胶凝材料
- T/YNIA 002-2021生物降解非织造材料
- 5.《语文综合实践:点亮古籍之光+传承中华文脉》高二语文下学期同步课堂教学设计(高教版2023拓展模块上册)
- 全球及中国核药(核素药物)行业发展动态与需求前景分析报告2025-2030年
- 现代电机设计及分析方法课件:电机主要尺寸之间的关系
- GB/T 40565.2-2025液压传动连接快换接头第2部分:平面型
- 皮草购货合同协议
- 工程附加合同协议
- 品管圈-提高心血管介入术后患者肢体活动有效率
评论
0/150
提交评论