1、写字板Java程序设计B实验报告格式华北科技学院计算机系综合性实验实 验 报 告 课程名称 Java程序设计B 实验学期 2011 至 2012 学年 第 1 学期学生所在系部 计算机学院 年级 2009 专业班级 网络B091 学生姓名 罗希 学号 200907024114 任课教师 李芙玲 实验成绩 计算机系制实验报告须知1、 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。2、 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。3、 教师应该填写的内容包括:实验成绩、教师评价等。4、 教师根据本课程的综合性实验指导单中实验内容的
2、要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。5、 未尽事宜,请参考该课程的实验大纲和教学大纲。Java程序设计B课程综合性实验报告开课实验室: 基础实验室 2011 年 11 月 16 日实验题目简易写字板软件设计一、实验目的通过编写Java的应用系统综合实例简易写字板软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,
3、并增强对程序设计整体思路的把握。熟悉在集成开发环境下编写Java程序。二、设备与环境 硬件:多媒体计算机软件:Windows 2000以上的操作系统、JDK开发包、集成开发环境三、实验内容总体要求:程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。具体要求:基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:1 菜单栏设计及功能实现:菜单栏主要包括文件、编辑、格式、帮助等常见菜单。其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可
4、在编辑菜单添加查找和查找替换功能。2 编辑区设计:对文本的编辑处理区。3 工具栏设计:可根据需要增加该项功能。4 其他功能设计。四、实验结果及分析1界面设计菜单的设计:本程序共设计4个菜单,分别是文件、编辑、格式、帮助,各个菜单的功能见图。文件菜单编辑菜单格式菜单帮助菜单2文件菜单功能实现新建功能设计:if(e.getSource()=create) if(!mainText.getText().equals(s) int n=JOptionPane.showConfirmDialog(null,您的文本已经修改,是否要保存?,记事本,JOptionPane.YES_NO_CANCEL_OPT
5、ION); 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(nu
6、ll); setTitle(记事本); s=mainText.getText(); 其中 s是定义的字符串,是用来存放文本区字符的,起始为空。单击新建,如果文本为空,不会有任何变化,如果文本去有文字,会弹出对话框。 单击“是”会弹出保存窗口,单击“否”会清空文本,单击“取消”会返回,不实现任何操作,保存窗口 保存方法代码: public void save() File fileSave=new File(getTitle(); char b=mainText.getText().toCharArray(); try FileWriter wr=new FileWriter(fileSave)
7、; BufferedWriter out=new BufferedWriter(wr); out.write(b); out.close(); catch(IOException ee) s=mainText.getText(); setTitle(fileSave.getAbsolutePath(); setVisible(true); 保存完毕后文本区的内容存到STRING s中,以便往后的操作。打开功能:打开方法代码: public void open() int y=fileChooser.showOpenDialog(null); if(y=JFileChooser.APPROVE_
8、OPTION) File fileopen=fileChooser.getSelectedFile(); try FileReader re=new FileReader(fileopen); BufferedReader in=new BufferedReader(re); String s=null; mainText.setText(null); while(s=in.readLine()!=null) mainText.append(s+n); in.close(); re.close(); catch(IOException ee) s=mainText.getText(); set
9、Title(fileopen.getAbsolutePath(); setVisible(true); 点击打开时也会判断文件是否修改,若未保存弹出提示框(同新建),若已经保存则弹出打开文件对话框,如图:保存功能: 保存的方法有两个,当点击保存时会判断当前文本是否已经有保存的文件路径,如果有,则调用SAVE()方法直接保存,不弹出对话框,若没有,则调用OTHERSAVE()方法,弹出保存对话框。主要代码如下: public void save() File fileSave=new File(getTitle(); char b=mainText.getText().toCharArray()
10、; try FileWriter wr=new FileWriter(fileSave); BufferedWriter out=new BufferedWriter(wr); out.write(b); out.close(); catch(IOException ee) s=mainText.getText(); setTitle(fileSave.getAbsolutePath(); setVisible(true); public void othersave() int x=fileChooser.showSaveDialog(null); if(x=JFileChooser.APP
11、ROVE_OPTION) File fileSave=fileChooser.getSelectedFile(); char b=mainText.getText().toCharArray(); try FileWriter wr=new FileWriter(fileSave); BufferedWriter out=new BufferedWriter(wr); out.write(b); out.close(); catch(IOException ee) s=mainText.getText(); setTitle(fileSave.getAbsolutePath(); setVis
12、ible(true); 另保存功能: 单击另保存,直接调用OTHERSAVE()方法,无论文本是否保存都会弹出保存窗口。退出功能: 单击退出也会若文本未保存会弹出提示对话框。 if(e.getSource()=exit) if(!mainText.getText().equals(s) nt n=JOptionPane.showConfirmDialog(null,您的文本已经修改,是否要保存?,记事本,JOptionPane.YES_NO_CANCEL_OPTION); if(n=JOptionPane.NO_OPTION)System.exit(0); if(n=JOptionPane.C
13、ANCEL_OPTION)return ; if(n=JOptionPane.YES_OPTION) if(getTitle().equals(记事本)othersave(); else save(); System.exit(0); else System.exit(0); 3编辑菜单功能实现撤销:创建撤销对象:private JPopupMenu pmenu=new JPopupMenu(); final UndoManager undo = new UndoManager(); Document doc = mainText.getDocument();添加撤销监听器: doc.addU
14、ndoableEditListener(new UndoableEditListener() public void undoableEditHappened(UndoableEditEvent evt) undo.addEdit(evt.getEdit(); );使用UNDO()方法,并捕捉异常处理: if(e.getSource()=cancel|e.getSource()=cancel2) try undo.undo(); catch (CannotRedoException cre) cre.printStackTrace(); 复制、粘贴、剪切、删除、全选功能: if(e.getSo
15、urce()=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) String temp = mainText.getSelectedText();/获得鼠标拖动选取的文本 int start = mainText.getSelec
16、tionStart(); int end = mainText.getSelectionEnd(); mainText.replaceRange(,start,end);/ if(e.getSource()=all) mainText.selectAll();时间功能:if(e.getSource()=date) Date nowTime=new Date(); SimpleDateFormat matter=new SimpleDateFormat(yyyy-MM-dd HH:mm:ss(EE); mainText.setText(matter.format(nowTime);4格式菜单功能
17、实现字体:字体功能是用来显示和隐藏字体设计条用的,主要代码: 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) Str
18、ing name=(String)listFont.getSelectedItem(); Integer i=(Integer)sizeFont.getSelectedItem(); boolean bo=bold.isSelected(); boolean it=italic.isSelected(); if(bo=false&it=false) Font f=new Font(name,Font.TRUETYPE_FONT,i ); mainText.setFont(f); if(bo=true&it=false) Font f=new Font(name,Font.BOLD,i ); m
19、ainText.setFont(f); if(bo=false&it=true) Font f=new Font(name,Font.ITALIC,i ); mainText.setFont(f); if(bo=true&it=true) Font f=new Font(name,Font.BOLD+Font.ITALIC,i ); mainText.setFont(f); 自动换行代码: if(e.getSource()=line) mainText.setLineWrap(line.isSelected(); 颜色对话框代码: if(e.getSource()=color) Color n
20、ewColor=JColorChooser.showDialog(this,颜色板,mainText.getBackground(); if(newColor!=null) mainText.setForeground(newColor); 5. 帮助菜单功能实现帮助功能:单击帮助主题会弹出一个对话框,不会实现任何效果。关于记事本功能:单击关于会弹出一个对话框,不会实现任何效果这两个功能都是建立了对话框,继承JDialog,往里面加标签、按钮、文本框等等。6. 总结 这次的JAVA程序设计让我学到了很多东西,受益匪浅。通过这次编程,学到了很多知识,如文件的输入输出,打开,保存对话框的使用,字体
21、样式的设计,在网上也学习到了撤销功能和删除功能的实现。在此次设计中,还通过自己的构想解决了,文件修改保存提示机制。关键的想法就是创建一个STRING S 用来保存文本的内容。每当退出,打开,新建时,就将当前文本内容与之前保存的S进行比较,若有变化就弹出保存提示对话框。 虽然这次编程遇到了很多问题,但是在老师,同学的帮助下,都能够顺利的解决,和同学之间的交流,又让我学到了很多以前没有主要的知识。提高了同学之间的友谊。我实践和总结了面向对象的编程思想以及编程方法,并通过编写写字板的程序的过程来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高了调试程序的能力,增强了自己对程序设计整体思路的把握。与此同时,我也发现自己的不足,在编写程序过程中发现了自己容易忽略的错误,通过一次次试验和查阅相关资料以及不断改进,终于将实验基本完成。这次的写字板还有很多功能没有实现,在今后的学习中我将继续努力学习JAVA,提高自己编程能力。教 师 评 价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:2011年 11 月 26 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1