![java记事本综合实验报告_第1页](http://file4.renrendoc.com/view/da3a2120b0971bf59f4868ca6e46a9ea/da3a2120b0971bf59f4868ca6e46a9ea1.gif)
![java记事本综合实验报告_第2页](http://file4.renrendoc.com/view/da3a2120b0971bf59f4868ca6e46a9ea/da3a2120b0971bf59f4868ca6e46a9ea2.gif)
![java记事本综合实验报告_第3页](http://file4.renrendoc.com/view/da3a2120b0971bf59f4868ca6e46a9ea/da3a2120b0971bf59f4868ca6e46a9ea3.gif)
![java记事本综合实验报告_第4页](http://file4.renrendoc.com/view/da3a2120b0971bf59f4868ca6e46a9ea/da3a2120b0971bf59f4868ca6e46a9ea4.gif)
![java记事本综合实验报告_第5页](http://file4.renrendoc.com/view/da3a2120b0971bf59f4868ca6e46a9ea/da3a2120b0971bf59f4868ca6e46a9ea5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...华北科技学院计算机学院课程综合作业实验报告课程名称Java大学实用教程实验学期2012至2013学年第一学期学生所在系部计算机学院年级2011专业班级信管B11-x学生姓名xxx学号xxxxxxxxxxx任课教师王养廷实验成绩计算机学院制《JAVA程序设计》课程综合作业实验报告开课实验室:根基四2012年12月20日实验题目用java编写简单记事本实验目的掌握面向对象程序设计根本要素〔封装、继承、多态〕掌握JAVA语言常用类包及其常用方法和JAVA语言根本语法掌握基于AWT的图形用户界面设计常用标准控件的使用,如标签、按钮、菜单、文本框、单项选择按钮、滚动条等。事件处理机制掌握布局、对话框的使用掌握发布JAVA应用程序设备与环境硬件:多媒体计算机软件:Windows2000以上的操作系统、JAVA集成开发环境实验内容1.完成记事本的需求分析。2.记事本的总体设计,列出主要的类和类间关系。3.列出具体的实现代码。4.写出程序的实现细节,主要得功能界面,实现说明。5.写出总结和评价。四、实验结果及分析1.实验分析本程序是一个简单的记事本程序,其主要构造参照了Windows操作系统的记事本工具。能够实现一些根本功能,主要有:具有编辑界面,能够实现文本的输入、删除等根本功能。具有菜单条,包含三个主菜单:文件、编辑、帮助。各个主菜单分别拥有其菜单项选择项。文件主菜单含有新建、翻开、保存、另存为、退出五个菜单项选择项;编辑主菜单含有剪切、粘贴、复制、全选四个菜单项选择项。帮助主菜单好友关于记事本信息的菜单项选择项,主要记录了记事本文件的根本信息。各个菜单项选择项能够实现其对应的功能。实现剪切、复制、粘贴、全选即编辑菜单的鼠标跳出菜单功能。各功能具有快捷键。2.程序设计思想①首先设计出整个记事本的主体框架,添加菜单栏〔JMenu〕,添加菜单项选择项〔JMenuItem〕。这局部应用到了Container、JMenuBar、JMenu、JMenuItem的构造方法,实现对记事本的根本页面设计。在页面中添加编辑局域,应用了JTextArea的构造方法。实现各个菜单项选择项的功能。在具体的功能实现中,为每一个功能设计了一个类,通过监听调用类方法实现所需要实现的功能。程序中的类以及它们之间的关系:本程序总共含有9个类:Notebook()主类:他实现了记事本的根本框架构造,以及对记事本各个功能的监听,并且调用各个功能的类方法。在Notebook()中,参加了编辑菜单的弹出菜单功能。在Notebook()主类中,通过事件监听调用了剪切、复制、保存等功能的类方法:NewActionListener〔〕:实现“新建〞功能的类SaveActionListener〔〕:实现“保存〞功能的类OpenActionListener〔〕:实现“翻开〞功能的类ExitActionListener〔〕:实现“退出〞功能的类CutActionListener〔〕:实现“剪切〞功能的类CopyActionListener〔〕:实现“粘贴〞功能的类SallActionListener〔〕:实现“全选〞功能的类AbouthActionListener〔〕:实现“关于〞功能的类添加事件监听Notebook〔〕添加事件监听Notebook〔〕初始化界面组件菜单栏文件编辑帮助新建翻开保存退出剪切复制粘贴全选关于另存文字输入区文字输入区4.程序代码importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publicclassMyNotebook{publicstaticvoidmain(Stringargs[]){newNotebook();}}//Notebook()主类:classNotebookextendsJFrame{ Containercontainer; JFileChooserfc=newJFileChooser();Filefile=null;JMenuBarmb;JMenufileMenu,editMenu,helpMenu;JMenuItemnewItem,openItem,saveItem,saveasItem,exitItem,cutItem,copyItem,pasteItem,sallItem,aboutItem;JTextAreajta;JPopupMenupopUpMenu;publicNotebook() {//记事本主界面设计程序// setTitle("记事本"); container=this.getContentPane(); container.setLayout(newBorderLayout()); jta=newJTextArea(); container.add(jta); setVisible(true); setSize(650,450); mb=newJMenuBar(); setJMenuBar(mb);//文件菜单及其菜单项选择项的程序设计// fileMenu=newJMenu("文件"); newItem=newJMenuItem("新建");//设置快捷键// newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));//设置“新建〞事件监听// newItem.addActionListener(newNewActionListener()); fileMenu.add(newItem); fileMenu.addSeparator(); openItem=newJMenuItem("翻开"); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK)); openItem.addActionListener(newOpenActionListener()); fileMenu.add(openItem); fileMenu.addSeparator(); saveItem=newJMenuItem("保存"); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK)); saveItem.addActionListener(newSaveActionListener()); fileMenu.add(saveItem); fileMenu.addSeparator(); saveasItem=newJMenuItem("另存为"); saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK)); saveasItem.addActionListener(newSaveActionListener()); fileMenu.add(saveasItem); fileMenu.addSeparator(); exitItem=newJMenuItem("退出"); exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK)); exitItem.addActionListener(newExitActionListener()); fileMenu.add(exitItem); mb.add(fileMenu); //编辑菜单栏及其菜单项选择项程序设计// editMenu=newJMenu("编辑"); cutItem=newJMenuItem("剪切"); cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK)); cutItem.addActionListener(newCutActionListener()); editMenu.add(cutItem); editMenu.addSeparator(); copyItem=newJMenuItem("复制"); copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK)); copyItem.addActionListener(newCopyActionListener()); editMenu.add(copyItem); editMenu.addSeparator(); pasteItem=newJMenuItem("粘贴"); pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); pasteItem.addActionListener(newPasteActionListener()); editMenu.add(pasteItem); editMenu.addSeparator(); sallItem=newJMenuItem("全选"); sallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK)); sallItem.addActionListener(newSallActionListener()); editMenu.add(sallItem); mb.add(editMenu);//帮助菜单栏及其菜单项选择项程序设计// helpMenu=newJMenu("帮助"); aboutItem=newJMenuItem("关于记事本"); aboutItem.addActionListener(newAbouthActionListener()); helpMenu.add(aboutItem); mb.add(helpMenu); //编辑菜单的鼠标监听及其弹出菜单的功能设计// popUpMenu=editMenu.getPopupMenu(); jta.addMouseListener(newMouseAdapter(){publicvoidmouseReleased(MouseEvente){if(e.getButton()==MouseEvent.BUTTON3)popUpMenu.show(editMenu,e.getX(),e.getY());}publicvoidmouseClicked(MouseEvente){if(e.getButton()==MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});} //“新建〞功能的实现// classNewActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ jta.setText(""); file=null; } } //“保存功能的实现〞// classSaveActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ if(file!=null)fc.setSelectedFile(file); intreturnVal=fc.showSaveDialog(Notebook.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=fc.getSelectedFile(); saving();} } voidsaving(){ try{ FileWriterWritef=newFileWriter(file); Writef.write(jta.getText()); Writef.close(); } catch(Exceptione){e.printStackTrace();} } }//“翻开〞功能的实现// classOpenActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ if(file!=null)fc.setSelectedFile(file);intreturnVal=fc.showOpenDialog(Notebook.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=fc.getSelectedFile();unfold();}}voidunfold(){try{FileReaderReadf=newFileReader(file);intlen=(int)file.length();char[]buffer=newchar[len];Readf.read(buffer,0,len);Readf.close();jta.setText(newString(buffer));}catch(Exceptione){e.printStackTrace();}}}//“退出〞功能的实现// classExitActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ setVisible(false); dispose(); System.exit(0); } }//“剪切〞功能的实现// classCutActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.cut(); } }//“复制〞功能的实现// classCopyActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.copy(); } }//“粘贴〞功能的实现// classPasteActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.paste(); } } //“全选〞功能的实现// classSallActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.setSelectionStart(0); jta.setSelectionEnd(jta.getText().length()); } } //“关于〞功能的实现// classAbouthActionListenerimplements
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人商业贷款抵押合同(1997年)版
- 个人债务履行担保合同示例
- 个人定向捐赠合同模板修订版
- 与道具研发企业之间的订制合同范本
- 家装样板房装修合同范本
- 个人股权转让合同协议书
- 餐厅保洁服务合同
- 个人承包餐饮店的合同范本
- 临时仓储设施租赁合同范本
- 二手房交易补充合同
- 13J103-7《人造板材幕墙》
- 上海高考英语词汇手册列表
- PDCA提高患者自备口服药物正确坚持服用落实率
- 上海石油化工股份有限公司6181乙二醇装置爆炸事故调查报告
- 家谱人物简介(优选12篇)
- 品管部岗位职责20篇
- 2023年中智集团下属中智股份公司招聘笔试题库及答案解析
- GA 1409-2017警用服饰硬式肩章
- 小儿垂钓 (课件)(14张)
- 嘉吉乐恩贝1-FarLactation课件
- 激光拉曼光谱技术课件
评论
0/150
提交评论