当前位置:文档之家› Java实训报告电子版

Java实训报告电子版

实训报告书实训名称: Java程序设计实训系(部):信息工程系专业班级:学生:学号:指导教师:民完成日期: 2015.12.11 科技大学泰山科技学院目 录目 录 ...................................................................... 0 1 实训目的. (1)1.1 实训目的 ............................................................ 1 1.2实训要求 ............................................................. 1 2 文本编辑器系统的分析与设计 (1)2.1 系统功能描述 ........................................................ 1 2.2 系统模块设计 ........................................................ 1 2.3 数据库结构设计 ...................................................... 2 3 主要代码清单 .. (3)3.1生成菜单栏及菜单项 ................................................... 3 3.2监听事件处理 ......................................................... 4 4 程序运行与测试 (5)4.1文本区功能测试 ....................................................... 5 4.2文件菜单功能测试 ..................................................... 5 4.3编辑菜单功能测试 ..................................................... 6 4.4工具菜单功能测试 .................................................... 10 5 实训总结 .. (13)……………………………装……………………………………订…………………………………线……………………………文本编辑器的设计和实现1 实训目的1.1 实训目的《Java程序设计实训》是计算机专业一门重要的专业技术基础实践课程。

为了能够较好的完成实训任务,学生应具备软件开发技术的基础知识,实训的主要目的在于将理论与实际应用相结合,使用程序设计语言java,以及相关软件设计开发知识完成软件的设计开发任务。

本实训课程将为整个专业的学习以及软件设计水平的提高打下良好的基础,提高学生项目分析、设计、编写、调试和测试的能力,并培养基本的、良好的团队合作能力。

1.2实训要求实训中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握软件开发技术,提高分析、解决实际问题的能力本次实训要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

2 文本编辑器系统的分析与设计2.1 系统功能描述通过此系统可以实现如下功能:1)可进行文件的新建、打开、保存、编辑等基本功能。

2)支持复制、剪切和粘贴操作3)可进行查找和替换操作2.2 系统模块设计根据系统自带的文档编辑器的特征设计,包括如下的功能模块:一、整体结构框架包括:菜单栏和文档编辑区二、每个框架分别包含不同的子框架,各个模块的具体框架:➢菜单栏:文件、编辑、工具➢菜单栏中各个子菜单功能文件:新建、打开、保存、另存为、退出编辑:剪切、复制、粘贴工具:查找、替换➢子菜单功能的实现主要的几个功能介绍1)打开与另存为:两个窗体调用系统函数直接利用,注意格式的选择2)查找:查找容、查找、查找下一个➢文本编辑区监视文本容是否改变、监听光标所在位置2.3 数据库结构设计1.程序E-R图3 主要代码清单3.1生成菜单栏及菜单项public void addmyMenu() // 菜单函数,生成菜单{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]);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(menuitem0[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]);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(menuitemstr2[i]);menu[2].add(menuitem2[i]);menuitem2[i].addActionListener(this);// 为每个菜单项注册监听事件}JMenuItem menuitemstr3 = new JMenuItem("帮助");// 帮助菜单中添加帮助菜单项menu[3].add(menuitemstr3);menuitemstr3.addActionListener(this);// 注册监听事件}3.2监听事件处理注册监听事件,当进行操作时,监听事件活得事件源并选择相应的操作,对不同的事件调用不同的函数,得到文本操作的不同结果。

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 NewRoman",Font.PLAIN ,ta.getFont().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;}}}}4 程序运行与测试4.1文本区功能测试a)字体的显示,开始的时候不做任何操作的时候显示的默认值,通过修改字体的属性来修改字体。

b)对文本事件进行监听,如果文本编辑窗口中如果有事件触发,关闭时能够有必要的信息提示。

c)状态栏的可以正常显示文本的状态信息。

4.2文件菜单功能测试文件中的功能测试:a)通过文件字符流读取文件,创建缓冲区存储文件流。

b)当保存文件时,先判断文件是否未被保存过,如果未被保存过,则创建新文件并通过输出流来存储文件,当文件已经保存过再对文件进行修改时,则会提示保存的消息窗体。

c)另存为是通过不同的方法来创建一个新的文件。

附:打开与保存代码:miSave.addActionListener( new ActionListener(){public void actionPerformed(ActionEvent e) {if( fileName.equals("") ){ //如果文件没有被保存过,即文件名为空FileDialog d=new FileDialog(mainFrame , "save file" , FileDialog.SAVE );//保存文件对话框d.addWindowListener( 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.getFile());//新建文件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 not found");System.exit(0);}catch( IOException ie_){System.out.println(" IO error");System.exit(0);}}else//如果文件已经保存过{String s = ta.getText();//得到所输入的文本容try//异常处理{File 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);}catch( IOException ie_){System.out.println(" IO error");System.exit(0);}}});//另存为miSaveAs.addActionListener( new ActionListener(){public void actionPerformed(ActionEvent e) {FileDialog d=new FileDialog(mainFrame , "save file" , FileDialog.SAVE );//保存文件对话框d.addWindowListener( 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.getFile());//新建文件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);}catch( IOException ie_){System.out.println(" IO error");System.exit(0);} }});4.3编辑菜单功能测试复制前粘贴后剪切前剪切后剪切、复制、粘贴功能的实现是在注册监听事件后,对文本去的文字进行操作时,系统调用文本类本身的库函数来处理文本去的文字操作,将选中的文本读入缓冲区。

相关主题