ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:3.72MB ,
资源ID:9860071      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9860071.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Java实训报告电子版.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Java实训报告电子版.doc

1、 Java实训报告电子版 23 2020年4月19日 文档仅供参考 实训报告书 实训名称: Java程序设计实训 系 (部): 信息工程系 专业班级: 学生姓名: 学 号: 指导教师: 张民 完成日期: .12.11

2、 山东科技大学泰山科技学院 实训课题 文本编辑器 实训人姓名 同组人员 实训日期 .12.07至 .12.11 实训成绩 指导教师评语 指导教师签名:______________ _______年 ____ 月____日 ……………………………装……………………………………订…………………………………线…………………………… 目 录 目 录 1 1 实训目的 2 1.1 实训目的 2 1.2实

3、训要求 2 2 文本编辑器系统的分析与设计 2 2.1 系统功能描述 2 2.2 系统模块设计 2 2.3 数据库结构设计 3 3 主要代码清单 4 3.1生成菜单栏及菜单项 4 3.2监听事件处理 5 4 程序运行与测试 6 4.1文本区功能测试 6 4.2文件菜单功能测试 6 4.3编辑菜单功能测试 7 4.4工具菜单功能测试 11 5 实训总结 14 文本编辑器的设计和实现 1 实训目的 1.1 实训目的 《Java程序设计实训》是计算机专业一门重要的专业技术基础实践课程。为了能够较好的完成实训任务,学生应具备软件开发技术的基础知识,

4、实训的主要目的在于将理论与实际应用相结合,使用程序设计语言java,以及相关软件设计开发知识完成软件的设计开发任务。本实训课程将为整个专业的学习以及软件设计水平的提高打下良好的基础,提高学生项目分析、设计、编写、调试和测试的能力,并培养基本的、良好的团队合作能力。 1.2实训要求 实训中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,经过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握软件开发技术,提高分析、解决实际问题的能力 本次实训要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本

5、内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 2 文本编辑器系统的分析与设计 2.1 系统功能描述 经过此系统能够实现如下功能: 1)可进行文件的新建、打开、保存、编辑等基本功能。 2)支持复制、剪切和粘贴操作 3)可进行查找和替换操作 2.2 系统模块设计 根据系统自带的文档编辑器的特征设计,包括如下的功能模块: 一、 整体结构框架包括:菜单栏和文档编辑区 二、 每个框架分别包含不同的子框架,各个模块的具体框架: Ø 菜单栏:文件、编辑、工具 Ø 菜单栏中各个子菜单功能 文件:新建、打开、保存、另存为

6、退出 编辑:剪切、复制、粘贴 工具: 查找、替换 Ø 子菜单功能的实现主要的几个功能介绍 1) 打开与另存为:两个窗体调用系统函数直接利用,注意格式的选择 2) 查找:查找内容、查找、查找下一个 Ø 文本编辑区 监视文本内容是否改变、监听光标所在位置 2.3 数据库结构设计 1.程序E-R图 菜单栏 文件 编辑 工具 文件 新建 打开 保存 另存为 退出 编辑 剪切 复制 粘贴 工具 查找 替换 3 主要代码清单 3.1生成菜单栏及菜单项 public void a

7、ddmyMenu() // 菜单函数,生成菜单 { JMenuBar menubar = new JMenuBar();// 菜单栏添加若干菜单 this.setJMenuBar(menubar); String menustr[] = { "文件", "编辑", "工具", "帮助" };//菜单栏字符串数组 JMenu menu[] = new JMenu[menustr.length]; for (int i = 0; i < menu.length; i++) {//为菜单栏赋值 menu[i] = new JMenu(menustr[i]);

8、 menubar.add(menu[i]); } String menuitemstr0[] = { "新建", "打开", "保存", "另存为", "退出" };// 文件菜单中添加若干菜单项 JMenuItem menuitem0[] = new JMenuItem[menuitemstr0.length]; for (int i = 0; i < menuitem0.length; i++) {//为文件菜单赋值 menuitem0[i] = new JMenuItem(menuitemstr0[i]); menu[0].add(menu

9、item0[i]); menuitem0[i].addActionListener(this);// 为每个菜单项注册监听事件 } String menuitemstr1[] = { "剪切", "复制", "粘贴" };// 编辑菜单中添加若干菜单项 JMenuItem menuitem1[] = new JMenuItem[menuitemstr1.length]; for (int i = 0; i < menuitem1.length; i++) { menuitem1[i] = new JMenuItem(menuitemstr1[i]);

10、 menu[1].add(menuitem1[i]); menuitem1[i].addActionListener(this);// 为每个菜单项注册监听事件 } String menuitemstr2[] = { "查找", "替换" };// 工具菜单中添加若干菜单项 JMenuItem menuitem2[] = new JMenuItem[menuitemstr2.length]; for (int i = 0; i < menuitem2.length; i++) { menuitem2[i] = new JMenuItem(menuit

11、emstr2[i]); menu[2].add(menuitem2[i]); menuitem2[i].addActionListener(this);// 为每个菜单项注册监听事件 } JMenuItem menuitemstr3 = new JMenuItem("帮助");// 帮助菜单中添加帮助菜单项 menu[3].add(menuitemstr3); menuitemstr3.addActionListener(this);// 注册监听事件 } 3.2监听事件处理 注册监听事件,当进行操作时,监听事件活得事件源并选择相应的操作,对不同

12、的事件调用不同的函数,得到文本操作的不同结果。 class MyItemListener_font implements ItemListener { //字体监听器 public void itemStateChanged(ItemEvent e) { id_font = ((java.awt.List)e.getSource()).getSelectedIndex(); switch( id_font){ case 0:{ ta.setFont(new Font("Times New Roman",Font.PLAIN ,ta.getFont

13、).getSize()) );//普通文字 break;} case 1:{ ta.setFont(new Font("Times New Roman" , Font.BOLD ,ta.getFont().getSize()) );//粗体文字 break; } case 2:{ ta.setFont(new Font("Times New Roman" , Font.ITALIC ,ta.getFont().getSize()) );//斜体文字 break;

14、}}}} 4 程序运行与测试 4.1文本区功能测试 a) 字体的显示,开始的时候不做任何操作的时候显示的默认值,经过修改字体的属性来修改字体。 b) 对文本事件进行监听,如果文本编辑窗口中如果有事件触发,关闭时能够有必要的信息提示。 c) 状态栏的能够正常显示文本的状态信息。 4.2文件菜单功能测试 文件中的功能测试: a) 经过文件字符流读取文件,创立缓冲区存储文件流。 b) 当保存文件时,先判断文件是否未被保存过,如果未被保存过,则创立新文件并经过输出流来存储文件,当文件已经保存过再对文件进行修改时,则会提示保存的消息窗体。 c) 另存为是经过不同的方法来创立

15、一个新的文件。 附: 打开与保存代码: miSave.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { if( fileName.equals("") ){ //如果文件没有被保存过,即文件名为空 FileDialog d=new FileDialog(mainFrame , "save file" , FileDialog.SAVE );//保存文件对话框 d.a

16、ddWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( d.getDirectory()+d.getFil

17、e());//新建文件 fileName = d.getDirectory()+d.getFile();//得到文件名 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println("file

18、not found"); System.exit(0); } catch( IOException ie_) { System.out.println(" IO error"); System.exit(0); } } else //如果文件已经保存过 { String s = ta.getText();//得到所输入的文本内容 try//异常处理 { F

19、ile f = new File( fileName );//新建文件 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println("file not found"); System.exit(0

20、); } catch( IOException ie_) { System.out.println(" IO error"); System.exit(0); } } }); //另存为 miSaveAs.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog d=new FileDia

21、log(mainFrame , "save file" , FileDialog.SAVE );//保存文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); String s = ta.getText();//得到所输入的文本内容

22、 try//异常处理 { File f = new File( d.getDirectory()+d.getFile());//新建文件 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.

23、println("file not found"); System.exit(0); } catch( IOException ie_) { System.out.println(" IO error"); System.exit(0); } }}); 4.3编辑菜单功能测试 复制前 粘贴后 剪切前

24、 剪切后 剪切、复制、粘贴功能的实现是在注册监听事件后,对文本去的文字进行操作时,系统调用文本类本身的库函数来处理文本去的文字操作,将选中的文本读入缓冲区。然后再等待不同的操作方法的调用。 附录: miCut.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tempString = ta.getSelectedText(); ///得到要复制的内容,暂存在tempString中 StringBuffer t

25、mp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要删除的字符串的起始位置 int len = ta.getSelectedText().length(); //得到要删除的字符串的长度 tmp.delete( start , start+len); ///删除所选中的字符串 ta.setText(tmp.toString());//用新文本设置原文本 } }); //复制

26、 miCopy.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tempString = ta.getSelectedText(); ///得到要复制的内容,暂存在tempString中 } }) //粘贴 miPaste.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

27、 StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要粘贴的位置 tmp.insert(start , tempString);//查入要粘贴的内容 ta.setText(tmp.toString());//用新文本设置原文本 } }); //删除 miDelete.addActionListener( new ActionListener(){ publi

28、c void actionPerformed(ActionEvent e){ StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要删除的字符串的起始位置 int len = ta.getSelectedText().length(); //得到要删除的字符串的长度 tmp.delete( start , start+len); ///删除所选中的字符串 ta.setText(tm

29、p.toString());//用新文本设置原文本 } }); 4.4工具菜单功能测试 功能描述: 查找需要先生成对应的窗体,使用相应的组件类来创立窗体,使用流布局管理器来对窗体中的各个控件进行布局,对查找和查找下一个按钮注册监听事件并编写相应的处理方法。文本去的文字使用相应的处理方法进行比较和处理,并对光标位置进行判断是否到文本末尾,使用异常处理语句捕获异常并处理。 功能描述: 替换也是需要先生成相应的窗体,使用相应的组件类来创立窗体,使用流布局管理器来对窗体中的各个控件进行布局,对替换和清空按钮注册监听事件并编写相应的处理方法。 附: 查找替换函数

30、处理代码: public void find()// 查找函数 { find.setSize(300, 100); find.setLocation(this.getX()+50, this.getY()+50); find.setResizable(false); find.setLayout(new FlowLayout());//窗体流布局 Label label1 = new Label("查找内容"); Button button1 = new Button("查找"); Button button2 = new Butto

31、n("查找下一个"); find.add(label1); find.add(ltext1); find.add(button1); find.add(button2); //注册按钮的监听事件 button1.addActionListener(new ActionListener() {//查找按钮事件方法 public void actionPerformed(ActionEvent e) { if (ltext1.getText() == "") ; else { int locate

32、 text.getText().indexOf(ltext1.getText(), 0); text.select(locate, locate + ltext1.getText().length()); fromindex = locate + ltext1.getText().length(); } } }); button2.addActionListener(new ActionListener() {//查找下一个按钮方法 public void actionPerformed(ActionEvent e) {

33、 int locate = text.getText() .indexOf(ltext1.getText(), fromindex); if (locate == -1) ltext1.setText("已查找到文件末尾!"); else { text.select(locate, locate + ltext1.getText().length()); fromindex = locate + ltext1.getText().length(); } } }); find.addWindowL

34、istener(new WindowAdapter() { // 关闭对话框窗口 public void windowClosing(WindowEvent ee) { find.dispose(); } }); find.show(); find.removeAll(); } public void replace()// 替换函数 { replace.setSize(200, 200); replace.setLocation(this.getX()+50, this.getY()+50); repla

35、ce.setResizable(false); replace.setLayout(new FlowLayout()); Label label_1 = new Label(" 查找内容"); Label label_2 = new Label(" 替换为 "); Button button_1 = new Button(" 替换 "); Button button_2 = new Button(" 清空 "); replace.add(label_1); replace.add(ltext2); replace.add(label_2)

36、 replace.add(ltext3); replace.add(button_1); replace.add(button_2); //注册按钮的监听事件 button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (ltext2.getText() == "") ; else { int locate = text.getText().indexOf(ltex

37、t2.getText(), 0); text.select(locate, locate + ltext2.getText().length()); text.replaceRange(ltext3.getText(), locate, locate + ltext2.getText().length()); } } }); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

38、 ltext2.setText(""); ltext3.setText(""); } }); replace.addWindowListener(new WindowAdapter() { // 关闭对话框窗口 public void windowClosing(WindowEvent ee) { replace.dispose(); } }); replace.show(); replace.removeAll(); } 5 实训总结 实训很快就结束了,当你认真的去完成一件事的时候

39、你就会发现时间过的很快。有些问题还没解决,有些知识还没有弄懂那个,时间短任务重。本次实训老师给出了三个题目,由于任务中,我们选择了其中一个项目,文本编辑器。以前在.net中做过实训,跟java一样需要用代码来实现窗体的实例化和调用。经过代码来实例化和创立窗体,并经过代码来调用,引入了java中的多个类来实现各个窗体和控件,以为很简单,可是实际做出来还是有很多不一样的。 在窗体中需要加入文本编辑区来存储文本,这就需要创立文本对象并对其进行实例化,而且在编辑菜单中还需要多个方法来实现对文本的操作和处理,比如剪切和复制,用到本身的函数来操作。对于所有的菜单和菜单项以及控件所做才操作处理都需要注

40、册其相应的监听事件来完成,而在文件菜单中,打开的操作用到了文件的输入流,保存则用到了文本的输出流。 实训结束了,我们还有很多功能没有实现,在已经实现的功能中还有很多不完善的地方。当然我想自己更多的是兴奋和一点点的成就感。现在我觉得,学习JAVA要不断的复习和运用,做到举一反三,将所学知识充分融入到平时的学习生活中去,从而为以后的工作打好坚实的基础。感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JAVA这门语言。经过这次实训,我真的从中学到了很多东西。同学间的互相帮助,能让你的进度加倍。是兴奋和一点点的成就感。现在我觉得,学习JAVA要不断的复习和运用,做到举一反三,将所学知识充分融入到平时的学习生活中去,从而为以后的工作打好坚实的基础。感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JAVA这门语言。 经过这次实训,我真的从中学到了很多东西。我对这个介于人类与非人类之间的计算机编程语言有了较上学期更进一步的认识。其间开心过、郁闷过、无奈过、彷徨过……随着实训的圆满成功与实验报告的顺利完成,有点微微的自豪感使人难忘。至于我做的程序,还不是很完善,因此我将一直去完善它,不断地学习下去。伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去发掘。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服