记事本实验报告.docx

上传人:b****6 文档编号:4067483 上传时间:2022-11-27 格式:DOCX 页数:15 大小:315.48KB
下载 相关 举报
记事本实验报告.docx_第1页
第1页 / 共15页
记事本实验报告.docx_第2页
第2页 / 共15页
记事本实验报告.docx_第3页
第3页 / 共15页
记事本实验报告.docx_第4页
第4页 / 共15页
记事本实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

记事本实验报告.docx

《记事本实验报告.docx》由会员分享,可在线阅读,更多相关《记事本实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

记事本实验报告.docx

记事本实验报告

华北科技学院计算机系综合性实验

实验报告

 

课程名称Java程序设计B

实验学期2011至2012学年第1学期

学生所在系部计算机学院

年级2009专业班级网络B093

学生姓名邓新龙学号200907024311

任课教师李芙玲

实验成绩

 

计算机系制

《Java程序设计B》课程综合性实验报告

开课实验室:

基础实验室2011年11月16日

实验题目

简易写字板软件设计

一、实验目的

通过编写Java的应用系统综合实例——简易写字板软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。

熟悉在集成开发环境下编写Java程序。

二、设备与环境

硬件:

多媒体计算机

软件:

Windows2000以上的操作系统、JDK开发包、集成开发环境

三、实验内容

总体要求:

程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。

具体要求:

基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:

1.菜单栏设计及功能实现:

菜单栏主要包括文件、编辑、格式、帮助等常见菜单。

其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可在编辑菜单添加查找和查找替换功能。

2.编辑区设计:

对文本的编辑处理区。

3.工具栏设计:

可根据需要增加该项功能。

4.其他功能设计。

四、实验结果及分析

1、主界面的设计与实现

界面布局:

边界布局的北边嵌套了三行一列的网格布局,每个网格中使用了一个中间容器JPANEL面板(使用默认的流式布局)。

第一个面板中放了一个菜单条,第二个面板中放了两个按钮,第三个面板中放了三个下拉列表和三个按钮。

边界布局的南边是文本编辑区域,占界面的主要部分。

界面组件:

一个菜单条,包括文件、编辑、查看、插入、格式、帮助等菜单;

五个按钮,包括保存、新建、颜色、加粗、倾斜;

三个下拉列表,包括字体、字号、中西文;

一个文本域,文字编辑区域。

界面效果图:

 

2、菜单设计

1 文件菜单

包括:

新建、打开、保存、另存为、退出等菜单项

功能:

新建,打开,保存,另存为txt文件

退出记事本

2 编辑菜单

包括:

撤销、剪切、复制、粘贴、查找、查找下一个、替换、删除等菜单项

功能:

编辑文字,剪切、复制、粘贴文字

查找、查找下一个相同字符

替换字符;

删除选定字符

3 查看菜单

包括:

工具栏、格式栏、状态栏等菜单项

功能:

没有触发事件,只是界面需要

4 插入菜单

包括:

日期和时间、对象等菜单项

功能:

插入当时时间,格式是yyyy-MM-ddHH:

mm:

ss

5 格式菜单

包括:

字体、段落等菜单项

功能:

没有触发事件,只是界面需要

6 帮助菜单

包括:

关于主体、关于记事本等菜单项

功能:

弹出消息对话框,简介记事本功能

 

 

 

3、编辑区设置

1 编辑区占整个窗体的三分之二,并且放置在滚动窗格中,而且设置了自动换行功能,消除了水平滚动条。

2 添加了鼠标事件——弹出式菜单,其中包括撤销、剪切、复制、粘贴、删除等菜单项。

3 添加了键盘事件,只要接收到回车字符就会在光标处追加\r,这样便于文件输出时能有换行效果。

 

4、文件菜单中各项功能及关键代码

1 新建

功能:

如果文本有改动并且没有保存则弹出确认对话框是否保存文件,否则清空文本域,改变窗体标题为“无标题-记事本”。

代码:

if(!

(w.text.getText()).equals("")&&w.n==0){

intn=JOptionPane.showConfirmDialog(null,"是否保存文件?

","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);

if(n==JOptionPane.YES_OPTION){

save.actionPerformed(null);

w.text.setText(null);

w.setTitle("无标题-记事本");

w.n=0;

w.exist=0;

}

elseif(n==JOptionPane.NO_OPTION){

w.text.setText(null);

w.setTitle("无标题-记事本");

w.n=0;

w.exist=0;

}

elseif(n==JOptionPane.CANCEL_OPTION){

}

}

else{

w.text.setText(null);

w.setTitle("无标题-记事本");

w.n=0;

w.exist=0;

}

}

}

2 保存

功能:

如果文件已经存在,则保存在此文件,否则调用另存为功能。

代码:

if(w.exist==0){

w.save.actionPerformed(null);

}

elseif(w.exist==1){

try{Filefile1=w.file;

FileWriterwritefile=newFileWriter(file1);

writefile.write(w.text.getText());

writefile.close();

w.n=1;

}

catch(IOExceptionee){}

}

3 另存为

功能:

弹出文件对话框,选择存储路径,更改文件名,保存文件。

代码:

JFileChooserfileChooser=newJFileChooser("c:

/");

intn=fileChooser.showSaveDialog(null);

if(n==JFileChooser.APPROVE_OPTION){

Filefile1=fileChooser.getSelectedFile();

w.file=file1;

try{//FileWriterwritefile=newFileWriter(file1);

BufferedWriterwritefile=newBufferedWriter(newFileWriter(file1));

writefile.write(w.text.getText());

w.setTitle(file1.getName());

writefile.close();

w.n=1;

w.exist=1;

}

catch(IOExceptionee){}

}

4 打开

功能:

如果文本有改动并且没有保存则弹出确认对话框是否保存文件,否则弹出文件对话框,选择要打开的文件。

按行读取文件到文本域,追加\n换行,设置窗体标题为读取的文件名。

代码:

w.text.setText(null);

JFileChooserfileChooser=newJFileChooser("c:

/");

intn=fileChooser.showOpenDialog(null);

if(n==JFileChooser.APPROVE_OPTION){

Filefile=fileChooser.getSelectedFile();

w.file=file;

try{FileReaderreadfile=newFileReader(file);

BufferedReaderin=newBufferedReader(readfile);

Strings=null;

while((s=in.readLine())!

=null)

w.text.append(s+"\n");

readfile.close();

in.close();

w.exist=1;

w.setTitle(file.getName());

}

catch(IOExceptionee){}

}

5 退出

功能:

如果文本有改动并且没有保存则弹出确认对话框是否保存文件,否则退出程序。

代码:

if(!

(w.text.getText()).equals("")&&w.n==0&&w.exist==0){

intn=JOptionPane.showConfirmDialog(null,"是否保存文件?

","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);

if(n==JOptionPane.YES_OPTION){

w.save.actionPerformed(null);

System.exit(0);

}

elseif(n==JOptionPane.NO_OPTION)

System.exit(0);

elseif(n==JOptionPane.CANCEL_OPTION){

}

else{

System.exit(0);

}

}

 

5、其他功能运行效果图

1 字体设置

 

2 字体大小设置

 

3 字体颜色设置

 

4 字体加粗、倾斜设置

 

5 查找对话框

 

6 替换对话框

 

7 查找错误消息框

 

8 关于记事本消息框

 

6、收获体会

本次实验主要练习了基于SWING的图形用户界面设计,发生在组件上的界面事件的处理和文件的新建、输入、输出。

要想做出一个界面美观、简洁的记事本窗体必须要仔细考虑布局设计,还要考虑各种组件的配合使用,然后调试参数使界面达到一个合理、大方的比例。

我的记事本采用了多种布局方法,嵌套使用,包括边界布局、网格布局、流式布局,其中还增加了中间容器JPanel面板使界面更加整齐、美观。

组件方面,我使用了菜单组件、文本组件、按钮与标签组件、列表组件。

菜单条中的各种菜单项包括了程序的大部分功能,几个按钮和下拉列表相当于快捷方式更加方便用户的操作。

最后精心设置各组件的大小参数,使界面达到理想的效果。

要想做出一个实用、稳定性强的记事本必须要仔细设计各个事件之间的逻辑关系,考虑事件处理的顺序,然后添加界面事件,最终通过测试达到稳定、准确处理事件的效果。

我的记事本在处理文件的保存和打开等事件时,定义了两个整型参数n、exist,n有0、1两种状态用来描述文件是否保存,exist有0、1两种状态用来描述文件是否存在,然后根据n和exist的值来处理文件新建、保存、另存为、打开等事件的逻辑关系。

而且,我还使用了窗口事件、鼠标事件、键盘事件使程序更加稳健实用。

在做字体的风格、大小和颜色等事件处理时,我通过上网和查询API学到了很多类和方法。

而且我把字体的颜色、加粗、倾斜设置做成了按钮,单击颜色按钮弹出颜色对话框进行颜色设置。

单击加粗或倾斜按钮后,按钮的颜色会发生变化方便用户直观把握字体属性的设置。

做查找和替换事件处理时,我另外做了一个窗体并设置了窗体大小不可调。

我把各项功能分别放在类中,然后在窗体类中监听、调用,这样很好的实现了程序的可维护性和可扩展性。

当需要增加新的功能时,只需新建类然后调用,不会影响其他功能的实现。

通过这次综合实验,自学了很多知识,虽然有些功能的代码时从网上找的,但我都把它理解、完善然后嵌入我的程序。

Java的学习关键在于掌握学习方法,遇到问题能自己解决,而不是在于记住了多少个类,写了多少行代码。

这是我这次综合实验的最大体会。

 

教师评价

评定项目

A

B

C

D

评定项目

A

B

C

D

算法正确

界面美观,布局合理

程序结构合理

操作熟练

语法、语义正确

解析完整

实验结果正确

文字流畅

报告规范

题解正确

其他:

 

评价教师签名:

2011年11月26日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1