




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院计算机系综合性实验实 验 报 告 课程名称 Java程序设计B 实验学期 2011 至 2012 学年 第 1 学期学生所在系部 计算机学院 年级 2009 专业班级 网络B093 学生姓名 学号 任课教师 实验成绩 计算机系制Java程序设计B课程综合性实验报告开课实验室: 基础实验室 2011 年 11 月 16 日实验题目简易写字板软件设计一、实验目的通过编写Java的应用系统综合实例简易写字板软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体
2、思路的把握。熟悉在集成开发环境下编写Java程序。二、设备与环境 硬件:多媒体计算机软件:Windows 2000以上的操作系统、JDK开发包、集成开发环境三、实验内容总体要求:程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。具体要求:基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:1 菜单栏设计及功能实现:菜单栏主要包括文件、编辑、格式、帮助等常见菜单。其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可在编辑菜单添加查找和
3、查找替换功能。2 编辑区设计:对文本的编辑处理区。3 工具栏设计:可根据需要增加该项功能。4 其他功能设计。四、实验结果及分析1主界面的设计与实现 我的记事本主界面由三个部分组成:菜单栏、工具栏、文本编辑区。布局方式:主界面采用的是默认的边界布局,工具栏置于边界布局的“北”部,文本编辑区置于边界布局的“中心”,菜单栏置于菜单条位置。工具栏内部采用的是盒式布局,将各个组件放在一个盒子容器里面,再将这个盒子容器嵌入到主界面的“北”部。文本编辑区是嵌入在一个滚动窗格的中间容器中,再将滚动窗格置于主界面“中心”。主界面截图如下: 菜单的设计菜单栏中共有四个菜单,分别是“文件”“编辑”“格式”“帮助”。
4、 另外,为了使用方便,还设计了弹出菜单,实现了部分功能,截图如下: 工具栏设计工具栏的使用也是该记事本特色之一,将常用的功能设置在工具栏中,以图片按钮的形式展现给使用者,更方便、更友好。按从左到右的顺序,工具栏中按钮及图标依次是:新建按钮、打开按钮、保存按钮、字体下拉列表、字体大小下拉列表、加粗按钮、倾斜按钮。其中加粗和倾斜按钮可以叠加使用,当选中“加粗”或者“倾斜”时,按钮会变成黄色,再次单击,按钮会恢复正常,以提示使用者当前按钮是否是选中状态。工具栏截图如下:2程序概述我的记事本程序只有一个源代码文件,其中共有3个类:一个记事本窗口类,一个查询类,一个测试用的主类。记事本窗口类:该类包含了
5、整个记事本的图形设计过程,包括窗体的设置,菜单的创建,工具栏的创建,文本区的创建等等。记事本中的大多数功能也是在本类中实现的,通过在各个菜单项、按钮上添加内部类监听器,内部类中调用相应功能方法。上述图形设计是定义在记事本窗口类的构造方法中的,而各种功能方法是记事本窗口类的成员方法。查询类:查询类是为“查找”“替换”功能专门创建的类,其中包括了查询对话框的设计,查找替换功能的实现。在记事本窗口类的“查找”菜单项上添加了监听器,当事件被触发时,会创建一个查询类的对象,弹出查询对话框实现相应功能。主类:包含main方法的测试类,产生记事本窗口类对象,程序的入口。3实现的功能此记事本是根据“Windo
6、ws记事本”改变而来,具有基本的编辑功能。已实现的功能有:新建、打开、保存、另存为、重命名、退出;剪切、复制、粘贴、全选、删除、查找、替换;字体格式、大小、颜色的设置等。撤销功能尚未实现。下面列举部分功能进行说明:保存功能设计记事本窗口类有如下成员变量Boolean isSave=false; 判断文件是否保存的标志变量File file=null; 指向正在编辑的文件的指针,文件未保存时为nullString textString=null; 文件保存后将文本区内容给该变量,用于判断文件是否被修改以下是保存方法源代码:/= 保存方法 =/private void savePerformed(
7、) FileWriter output = null;if(file!= null & file.exists() ;如果文件指针不为空且文件已存在tryoutput = new FileWriter(file); ;file是指向正在编辑文件针的指output.write(text.getText(); ;直接写入文件output.close();catch(IOException e)JOptionPane.showMessageDialog(this, 文件写入错误,没有保存);isSave=false; ;保存失败,保存标志变量置为falsefinallyoutput = null;i
8、sSave =true; ;保存成功则修改标志位truetextString=text.getText(); ;为以后判断内容是否被修改用elsesaveAsPerformed(); ;文件不存在则调用另存为方法重命名功能设计重命名方法是Windows记事本没有的方法,是我自己新增的。此记事本的另一优点是,只要文件没保存或者保存后又被修改,当调用“新建”“打开”“重命名”“退出”等功能时,会弹出确认对话框,提醒使用者是否保存文件。以下是重命名方法的源代码/= 重命名方法 =/private void reNamePerformed()if(file=null) ;如果文件没保存,弹出确认对话框
9、int ret=JOptionPane.showConfirmDialog(this, 文件未保存,是否保存,确认对话框,JOptionPane.YES_NO_OPTION);if(ret=JOptionPane.NO_OPTION)return;else if(ret=JOptionPane.YES_OPTION)saveAsPerformed(); ;选择 “是”则调用另存为方法boolean flag=true; ;以下是重命名代码while(flag)String s=JOptionPane.showInputDialog(this,请输入新的文件名!,重命名对话框,JOptionPa
10、ne.INFORMATION_MESSAGE);if(s!=null)flag=false;setTitle(s); ;当输入不为空时,调用renameTo()方法重命名file.renameTo(new File(file.getParent()+s);if(s.equals() ;提示文件名不能为空,并跳转重新输入JOptionPane.showMessageDialog(this, 文件名不能为空!,错误,JOptionPane.ERROR_MESSAGE);flag=true; 字体加粗倾斜功能设计加粗倾斜是定义在工具栏上的两个按钮上的。主要思路:加粗和倾斜是字体格式参数int sty
11、le决定的,其中BOLD=1,ITALIC=2,PLAIN=0记事本窗口类有一个字体成员变量:Font font=new Font(“宋体”,Font.PLAIN,16); 初始字体样式通过font返回style的值,控制style在0-3之间变化,根据style的值就可以判断字体是什么样式的了。每次单击一次“加粗”style加1或者减1;每单击一次“倾斜”,style就加2或者减2.当“加粗”或者“倾斜”被选中时,则给按钮换一张黄色背景的图片,再次选中则换回以前图片。boldButton.addActionListener(new ActionListener()public void ac
12、tionPerformed(ActionEvent e)/int style=font.getStyle();System.out.println(style);if(style=0|style=2)style+;boldButton.setIcon(new ImageIcon(Imagebold1.png);else if(style=1|style=3)style-;boldButton.setIcon(new ImageIcon(Imagebold.gif);font=(new Font(font.getName(),style,font.getSize();text.setFont(f
13、ont););xieButton.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)int style=font.getStyle();System.out.println(style);if(style=0|style=1)style=style+2;xieButton.setIcon(new ImageIcon(Imageitalic1.png);else if(style=2|style=3)style=style-2;xieButton.setIcon(new ImageIco
14、n(Imageitalic.gif);font=(new Font(font.getName(),style,font.getSize();text.setFont(font););字体功能展示截图如下:查找替换功能设计/替换方法 public void replace() int weight = textRepla.getText().length(); ;获得替换文本框中字符长度 String store1 = notepad.text.getText(); ;获得记事本编辑区文字 String store2 = textFind.getText(); String store3 = t
15、extRepla.getText(); ;获得替换框字符串 if(weight 0) int index = store1.indexOf(store2, run); ;查找匹配的字符位置 if (index != -1) ;替换匹配的字符串 notepad.text.select(index, index + store2.length(); notepad.text.replaceRange(store3, notepad.text.getSelectionStart(), notepad.text.getSelectionEnd(); run = index + 1; ;光标位置 loc
16、aTail = notepad.text.getSelectionEnd(); locaTop = notepad.text.getSelectionStart(); else run = 0; ;如果没找到,光标退回开头 JOptionPane.showMessageDialog(this,找不到: +store2,替换, JOptionPane.INFORMATION_MESSAGE); else ;如果查找框为空,弹出提示 JOptionPane.showMessageDialog(this,请输入要查找的内容,提示, JOptionPane.INFORMATION_MESSAGE);
17、替换功能展示截图如下: 上图为: 查找文本区中“B”字母 上图为:将文本区所有的“B”换成“V”4遇到的问题在编写记事本程序时,遇到过很多问题。比如说在图形界面设计时,就遇到过关于布局的问题,当我向窗口中加入工具栏时,文本区就“不见了”,刚开始还以为是没validate(),可是刷新后还是没有,把setVisible()放到最后执行还是不行,最后才发现是布局的问题。JFrame默认是的边界布局,一个区域只能放一个组件,如果再放入一个组件就会覆盖前一个组件,所以我的文本区就看不到了。于是,我把工具栏添加到“北区”就不会遮盖“中区”的文本区了。在创建“查找”对话框时,总是布局不好,要么就是这个组件
18、对不齐,要么那个组件太大了,总是达不到我预期的效果,用了很多方法都不行。最后我只好去网上看了看别人的代码,发现别人用的竟是“空布局”,每一个组件都用setBounds()去控制大小和位置,于是我也照着试了试,效果不错。在实现一些功能时,不知道如何下手,于是我上网查资料,看看别人是如何实现的。比如,如何将系统自带的字体添加到下拉列表中,为此我还在百度知道中提问了,得到了好心人的帮助,最终得到了解决。后来我发现,课本上有一道例题居然可以解决我的问题,看来是我看书看得不够啊,心中惭愧啊。在这次实验中我遇到了好多我不认识的类,不认识的方法,于是我一个个对着API找,仔细地看各个方法的用法,各个参数代表什么意思,然后自己理解好加上注释。5收获和体会这次综合实验我很早就开始准备了,在代码上花费的时间也很多。我深深地体会到编出一个程序是不容易的,编好一个程序更是不容易的。在很多功能上,比如说在“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 8 How do you make a banana milk shake Section A 1a - 1c 教学设计 2024-2025学年人教版八年级英语上册
- 2023一年级数学下册 4 100以内数的认识练习课(1-2)配套教学设计 新人教版
- 10 雨点儿 教学设计-2024-2025学年统编版语文一年级上册
- 七年级道德与法治下册 第四单元 走进法治天地 第十课 法律伴我们成长 第一框《法律为我们护航》教学设计 新人教版
- 15 搭船的鸟 第二课时 教学设计-2024-2025学年语文三年级上册统编版
- 2024-2025学年七年级道德与法治上册 第一单元 成长的节拍 第二课 学习新天地 第1框 学习伴成长教学设计 新人教版
- 22文言文二则《书戴嵩画牛》(教学设计)2024-2025学年统编版语文六年级上册
- 三年级道德与法治上册 第四单元 家是最温暖的地方 12 家庭的记忆教学设计2 新人教版
- 2023六年级数学下册 二 圆柱与圆锥(圆柱的体积)教学设计 西师大版
- 2024二年级语文下册 第6单元 16.雷雨教学设计 新人教版
- 八年级下写字课
- 入伍简历当兵简历.doc
- 前列腺癌临床路径(最全版)
- 国家旅游局新版团队出境旅游合同模板
- 管道探伤焊口计算表
- 4S店三表一卡标准模板
- 南京地铁四号线风井主体结构施工方案
- 高中生物竞赛 第九章 染色体畸变课件
- 四年级下册《小数的意义和性质》整理和复习
- 土壤污染修复技术对比分析
- 3万高炉转炉混合煤气柜技术规程
评论
0/150
提交评论