写字板Java程序设计B实验报告格式.docx
- 文档编号:10872765
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:18
- 大小:152.67KB
写字板Java程序设计B实验报告格式.docx
《写字板Java程序设计B实验报告格式.docx》由会员分享,可在线阅读,更多相关《写字板Java程序设计B实验报告格式.docx(18页珍藏版)》请在冰豆网上搜索。
写字板Java程序设计B实验报告格式
华北科技学院计算机系综合性实验
实验报告
课程名称Java程序设计B
实验学期2011至2012学年第1学期
学生所在系部计算机学院
年级2009专业班级网络B091
学生姓名罗希学号200907024114
任课教师李芙玲
实验成绩
计算机系制
实验报告须知
1、学生上交实验报告时,必须为打印稿(A4纸)。
页面空间不够,可以顺延。
2、学生应该填写的内容包括:
封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。
3、教师应该填写的内容包括:
实验成绩、教师评价等。
4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。
综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。
任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。
5、未尽事宜,请参考该课程的实验大纲和教学大纲。
《Java程序设计B》课程综合性实验报告
开课实验室:
基础实验室2011年11月16日
实验题目
简易写字板软件设计
一、实验目的
通过编写Java的应用系统综合实例——简易写字板软件,总结、回顾和实践面向对象的编
程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,
同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。
熟悉在集成开发环境下编写Java程序。
二、设备与环境
硬件:
多媒体计算机
软件:
Windows2000以上的操作系统、JDK开发包、集成开发环境
三、实验内容
总体要求:
程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括
必要的注释和相应的文档。
具体要求:
基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:
1.菜单栏设计及功能实现:
菜单栏主要包括文件、编辑、格式、帮助等常见菜单。
其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、
等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可在编辑菜
单添加查找和查找替换功能。
2.编辑区设计:
对文本的编辑处理区。
3.工具栏设计:
可根据需要增加该项功能。
4.其他功能设计。
四、实验结果及分析
1.界面设计
菜单的设计:
本程序共设计4个菜单,分别是文件、编辑、格式、帮助,各个菜单的功能见图。
文件菜单
编辑菜单
格式菜单
帮助菜单
2.文件菜单功能实现
新建功能设计:
if(e.getSource()==create){
if(!
mainText.getText().equals(s)){
intn=JOptionPane.showConfirmDialog(null,"您的文本已经修改,是否要保存?
","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.NO_OPTION){
mainText.setText(null);
setTitle("记事本");
s=mainText.getText();
}
if(n==JOptionPane.CANCEL_OPTION){return;}
if(n==JOptionPane.YES_OPTION){
if(getTitle().equals("记事本")){othersave();}
else{save();}
mainText.setText(null);
setTitle("记事本");
s=mainText.getText();
}
}
else{
mainText.setText(null);
setTitle("记事本");
s=mainText.getText();
}
其中s是定义的字符串,是用来存放文本区字符的,起始为空。
单击新建,如果文本为空,不
会有任何变化,如果文本去有文字,会弹出对话框。
单击“是”会弹出保存窗口,单击“否”会清空文本,单击“取消”会返回,不实
现任何操作,保存窗口
保存方法代码:
publicvoidsave(){
FilefileSave=newFile(getTitle());
charb[]=mainText.getText().toCharArray();
try{
FileWriterwr=newFileWriter(fileSave);
BufferedWriterout=newBufferedWriter(wr);
out.write(b);
out.close();
}
catch(IOExceptionee){}
s=mainText.getText();
setTitle(fileSave.getAbsolutePath());
setVisible(true);
}
保存完毕后文本区的内容存到STRINGs中,以便往后的操作。
打开功能:
打开方法代码:
publicvoidopen(){
inty=fileChooser.showOpenDialog(null);
if(y==JFileChooser.APPROVE_OPTION){
Filefileopen=fileChooser.getSelectedFile();
try{
FileReaderre=newFileReader(fileopen);
BufferedReaderin=newBufferedReader(re);
Strings=null;
mainText.setText(null);
while((s=in.readLine())!
=null){
mainText.append(s+"\n");
}
in.close();
re.close();
}
catch(IOExceptionee){}
s=mainText.getText();
setTitle(fileopen.getAbsolutePath());
setVisible(true);
}
}
点击打开时也会判断文件是否修改,若未保存弹出提示框(同新建),
若已经保存则弹出打开文件对话框,如图:
保存功能:
保存的方法有两个,当点击保存时会判断当前文本是否已经有保存的文件路径,
如果有,则调用SAVE()方法直接保存,不弹出对话框,
若没有,则调用OTHERSAVE()方法,弹出保存对话框。
主要代码如下:
publicvoidsave(){
FilefileSave=newFile(getTitle());
charb[]=mainText.getText().toCharArray();
try{
FileWriterwr=newFileWriter(fileSave);
BufferedWriterout=newBufferedWriter(wr);
out.write(b);
out.close();
}
catch(IOExceptionee){}
s=mainText.getText();
setTitle(fileSave.getAbsolutePath());
setVisible(true);
}
publicvoidothersave(){
intx=fileChooser.showSaveDialog(null);
if(x==JFileChooser.APPROVE_OPTION){
FilefileSave=fileChooser.getSelectedFile();
charb[]=mainText.getText().toCharArray();
try{
FileWriterwr=newFileWriter(fileSave);
BufferedWriterout=newBufferedWriter(wr);
out.write(b);
out.close();
}
catch(IOExceptionee){}
s=mainText.getText();
setTitle(fileSave.getAbsolutePath());
setVisible(true);
}
}
另保存功能:
单击另保存,直接调用OTHERSAVE()方法,无论文本是否保存都会弹出保存窗口。
退出功能:
单击退出也会若文本未保存会弹出提示对话框。
if(e.getSource()==exit){
if(!
mainText.getText().equals(s)){
ntn=JOptionPane.showConfirmDialog(null,"您的文本已经修改,是否要保存?
","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.NO_OPTION){System.exit(0);}
if(n==JOptionPane.CANCEL_OPTION){return;}
if(n==JOptionPane.YES_OPTION){
if(getTitle().equals("记事本")){othersave();}
else{save();}
System.exit(0);
}
}
elseSystem.exit(0);
}
3.编辑菜单功能实现
撤销:
创建撤销对象:
privateJPopupMenupmenu=newJPopupMenu();
finalUndoManagerundo=newUndoManager();
Documentdoc=mainText.getDocument();
添加撤销监听器:
doc.addUndoableEditListener(newUndoableEditListener(){
publicvoidundoableEditHappened(UndoableEditEventevt){
undo.addEdit(evt.getEdit());
}
});
使用UNDO()方法,并捕捉异常处理:
if(e.getSource()==cancel||e.getSource()==cancel2){
try{
undo.undo();
}
catch(CannotRedoExceptioncre){
cre.printStackTrace();
}
}
复制、粘贴、剪切、删除、全选功能:
if(e.getSource()==cut||e.getSource()==cut2)
mainText.cut();
if(e.getSource()==copy||e.getSource()==copy2)
mainText.copy();
if(e.getSource()==paste||e.getSource()==paste2)
mainText.paste();
if(e.getSource()==delete||e.getSource()==delete2){
Stringtemp=mainText.getSelectedText();//获得鼠标拖动选取的文本
intstart=mainText.getSelectionStart();
intend=mainText.getSelectionEnd();
mainText.replaceRange("",start,end);//
}
if(e.getSource()==all)
mainText.selectAll();
时间功能:
if(e.getSource()==date){
DatenowTime=newDate();
SimpleDateFormatmatter=newSimpleDateFormat("yyyy-MM-ddHH:
mm:
ss(EE)");
mainText.setText(matter.format(nowTime));}
4.格式菜单功能实现
字体:
字体功能是用来显示和隐藏字体设计条用的,主要代码:
if(e.getSource()==world){
if(i==0){
pNorth.setVisible(true);
i=1;
validate();
}
else{
pNorth.setVisible(false);
i=0;
validate();
}
}
字体设计条中有如下功能:
字体,大小,粗体,斜体,自动换行,颜色设置功能。
字体设计条截图如下:
字形的设计代码:
if(e.getSource()==listFont||e.getSource()==sizeFont||
e.getSource()==bold||e.getSource()==italic){
Stringname=(String)listFont.getSelectedItem();
Integeri=(Integer)sizeFont.getSelectedItem();
booleanbo=bold.isSelected();
booleanit=italic.isSelected();
if(bo==false&&it==false){
Fontf=newFont(name,Font.TRUETYPE_FONT,i);
mainText.setFont(f);
}
if(bo==true&&it==false){
Fontf=newFont(name,Font.BOLD,i);
mainText.setFont(f);
}
if(bo==false&&it==true){
Fontf=newFont(name,Font.ITALIC,i);
mainText.setFont(f);
}
if(bo==true&&it==true){
Fontf=newFont(name,Font.BOLD+Font.ITALIC,i);
mainText.setFont(f);
}
}
自动换行代码:
if(e.getSource()==line){
mainText.setLineWrap(line.isSelected());
}
颜色对话框代码:
if(e.getSource()==color){
ColornewColor=JColorChooser.showDialog(this,"颜色板",mainText.getBackground());
if(newColor!
=null){
mainText.setForeground(newColor);
}
}
5.帮助菜单功能实现
帮助功能:
单击帮助主题会弹出一个对话框,不会实现任何效果。
关于记事本功能:
单击关于会弹出一个对话框,不会实现任何效果
这两个功能都是建立了对话框,继承JDialog,往里面加标签、按钮、文本框等等。
6.总结
这次的JAVA程序设计让我学到了很多东西,受益匪浅。
通过这次编程,学到了很多知识,如文件的输入输出,打开,保存对话框的使用,字体样式的设计,在网上也学习到了撤销功能和删除功能的实现。
在此次设计中,还通过自己的构想解决了,文件修改保存提示机制。
关键的想法就是创建一个STRINGS用来保存文本的内容。
每当退出,打开,新建时,就将当前文本内容与之前保存的S进行比较,若有变化就弹出保存提示对话框。
虽然这次编程遇到了很多问题,但是在老师,同学的帮助下,都能够顺利的解决,和同学之间的交流,又让我学到了很多以前没有主要的知识。
提高了同学之间的友谊。
我实践和总结了面向对象的编程思想以及编程方法,并通过编写写字板的程序的过程来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高了调试程序的能力,增强了自己对程序设计整体思路的把握。
与此同时,我也发现自己的不足,在编写程序过程中发现了自己容易忽略的错误,通过一次次试验和查阅相关资料以及不断改进,终于将实验基本完成。
这次的写字板还有很多功能没有实现,在今后的学习中我将继续努力学习JAVA,提高自己编程能力。
教师评价
评定项目
A
B
C
D
评定项目
A
B
C
D
算法正确
界面美观,布局合理
程序结构合理
操作熟练
语法、语义正确
解析完整
实验结果正确
文字流畅
报告规范
题解正确
其他:
评价教师签名:
2011年11月26日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 写字板 Java 程序设计 实验 报告 格式