还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
学校计算机系媒合性实盼XX实验报告课程名称_____________程序设计Java实验学期至学年第学期学生所在系部____________计算机系年级专业班级学生姓名学号任课教师__________________________________________实验成绩_________________________________________计算机系制、类查找并替换4change此类中的查找方式实现方法与类的相同,在其基础上添加替换功能check{〃点击替换else ife.getSource==replacefw.text l.replaceRangestr,start,end;fw.textl.selectstart,start+replaceText.getText.length;}当查找结束或无相同匹配时,给出相应的提示信息:importjava.awt.*;importjava.io.*;importjava.util.*;importjava.awt.datatransfer.*;〃剪切板的类import java.text.SimpleDateFormat;//时间格式import javax.swing.JOptionPane;〃警告对话框/***NoteBook-OpenClass.**@liujunguang*©version
1.0009/10/28*/class EditClassextends Frame{NoteBookFrame notebookframe=null;Date nowdate;〃定义一个时间对象Clipboard clipboard=null;//定义一个剪切板对象SimpleDateFormat dateformat;EditClassNoteBookFrame p{notebookframe=p;nowdate=new Date;clipboard=getToolkit.getSystemClipboard;〃获得系统的剪切板dateformat=new SimpleDateFormat“本地时间:yyyy年MM月dd日E HH时mm分〃;public voidRepeal{System.out.printin〃撤至肖〃;}public voidCut{_String temp=notebookframe.textarea.getSelectedText;//获得鼠标拖动选取的文本StringSelection text=new StringSelectiontemp;〃把待剪切的文本传递给text对象clipboard.setContents text,null;〃将文本放入剪切板中int start=notebookframe.textarea.getSelectionStart;//获取选中文本的开始位置int end=notebookframe.textarea.getSelectionEnd;//获取选中文本的结束位置notebookframe,textarea.replaceRange〃〃,start,end;//选中的区域用〃〃替换public voidCopyString temp=notebookframe,textarea.getSelectedText;//获得鼠标拖动选取的文本一StringSelection text=new StringSelectiontemp;〃把待剪切的文本传递给text对象clipboard.setContents text,null;〃将文本放入剪切板中public voidStick Transferablecontexts=clipboard.getContents notebookframe;〃获取剪切板中的内容DataFlavor flavor=DataFlavor.stringFlavor;〃剪切板的风格系统的标准风格if contexts.isDataFlavorSupported flavor〃判断风格java是否可用{try{String str=String contexts.getTransferDataflavor;intn=notebookframe.textarea getCaretPosition;〃获得文本中光标的位置notebookframe,textarea.replaceRangestr,n,n;//替换光标所在位置的文本catch Exceptionee{}}public voidDelete Stringtemp=notebookframe,textarea.getSelectedText;//获得鼠标拖动选取的文本int start=notebookframe,textarea.getSelectionStart;int end=notebookframe,textarea.getSelectionEnd;notebookframe,textarea.replaceRange〃〃,start,end;//选中的区域用〃〃替换public voidLookUp StringBuffersub=newStringBuffernotebookframe,textarea.getText;int n=sub.indexOf〃haha〃;System,out.print n;public voidLookUpNext System,out.printin查找下一个〃;public voidExchangeSystem.out.printin〃替换〃;public voidGoto{System,out.printin〃转至U〃;}public voidAll notebookframe,textarea.selectAll;public voidTimeDatenotebookframe,textarea,append dateformat,formatnowdate;〃编辑类import java.awt./***NoteBook-OpenClass.**@liujunguang*©version
1.0009/10/28class FormateClassextends Frame{NoteBookFrame notebookframe=null;Toolkit tool=null;Dimension dim=null;boolean ran=true;int n;FormateClassNoteBookFrame pnotebookframe=p;tool=getToolkit;dim=tool.getScreenSize;public voidRandif rannotebookframe,textarea.setColumns1;〃得到文本区的列数System.out.printin notebookframe.getWidthO;ran=false;//notebookframe,textarea.getRows;//得到文本区的行数//notebookframe.setBounds0,0,dim.width,dim.height;elsenotebookframe,textarea.setColumns4;System,out.printindim.width;ran=true;public voidFontSizeSystem,out.printin〃字体〃;//格式类import java.awt./***NoteBook-OpenClass.**@liujunguang*©version
1.0009/10/28class HelpClassextends Frame{NoteBookFrame notebookframe=null;HelpClassNoteBookFrame pnotebookframe=p;}public voidMainHeipSystem.out.printin〃帮助主题〃;public voidAboutBook{System.out.printin〃关于i己事本〃;〃帮助类import java.awt./***NoteBook-OpenClass.**@liujunguang*©version
1.0009/10/28*/class SeeClassextends Frame{NoteBookFrame notebookframe=null;SeeClassNoteBookFrame p{notebookframe=p;public voidModo System,out.println〃〃;}//查看类
五、总结通过此次的综合实验,我对程序设计相关知识有了进一步的理解与学习,结Java合实例体会到面向对象的编程但在此次实验中,在写字板的一些功能实现上还存在着很多的不足,比如对修改后的文件保存时应该对其进行更改保存的提示等此次的实验,让我体会到编程在实际生活中应用的广泛与实用性,同时让我Java在复习前面所学知识的同时发现在学习中的欠缺与不足,因而在今后的学习中要更加努力评定项目评定项目A BC DA B0D算法正确操作熟练程序结构合实验结果正确教师理评价语法、语义正文字流畅、报告规范确其他:评价教师签名年月曰《程序设计》课程综合性实验报告Java开课实验室年月曰实验题目简易写字板软件设计
一、实验目的通过编写的应用系统综合实例一一简易写字板软件,总结、回顾和实践面向Java对象的编程思想以及编程方法,并通过编写程序来掌握语言编程技巧,将学习到Java的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握建议程序使用集成开发环境完成,熟悉在集成开发环境下编写程序
二、Eclipse Java设备与环境硬件多媒体计算机软件以上的操作系统、开发包、集成开发环境Windows2000JDK
三、实验内容总体要求程序界面友好,代码的可维护性好,包括必要的注释和相应的文档具体要求基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括菜单栏设计及功能实现菜单栏主要包括文件、编辑、格式、帮助等常见菜单
1.其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、查找和查找替换等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能编辑区设计对文本的编辑处理区
2.工具栏设计可根据需要增加该项功能
3.其他功能设计
4.四实验结果及分析
(一)、图形界面如下图
(二)、设计思路及实现功能创建了一个标题为“简易写字板”的窗体,其中包括菜单栏(菜单及菜单项)、工具栏,并能通过点击鼠标右键进行一些基本操作实现的功能对文件的新建、打开、保存、另存、退出;对文本的剪切、复制、粘贴、全选、查找、查找并替换;对文本字体、颜色的设置;点击鼠标右键,实现对文本的剪切、复制、粘贴、全选;当选择新建、关闭、退出、保存时有一定的保存文件的提示
(三)、结构分析()菜单栏利用类创建一个菜单条的实例并利用类创建了四个菜单的实1JMenuBar menubar,Jmenu例、分别为文件、编辑、格式、帮助,如下图所示menul menu2menu3menu4
①文件菜单其中包括利用类创建了五个菜单项新建、打开、保存、另存为、Jmenultem退出
②编辑菜单包括剪切、复制、粘贴、删除、查找、查找并替换、全选菜单项,同样用类创建Jmenulteni
③格式菜单包括字体、颜色、自动换行,其中为自动换行菜单项添加了复选框,应用类创建JcheckBoxMenuItem
④帮助菜单包括帮助主题、关于写字板两个菜单项、工具栏包括运用类创建的按钮分别为新建、打开、2JButton newl,openl,savel,cutl,pastel,copyl,保存、剪切、复制、粘贴、弹出菜单鼠标右击应用类创建一个弹出菜单的实例并将菜单项3JpopupMenu pm,itemcopy1,itemcut依次添加到弹出菜单1,itempaste1,itemqx1
四、代码分析总体结构概述程序包括一个公共类与四个类,分别为窗口建立的类查找并替换的sy,FirstWindow,类查找的类字体设置的类;其中所引用到了提供的软件包change,check,Fontext Javajava.awt.*;实现各个组件的功能在窗口建立的类中为各个组java.awt.event.*;java.io.*;java.util.regex.*;javax.swing.*;件添加监听器,并实现监听器,类、、分别为实现查找并替换、查找、字体监听器而change checkFontext建立的类,在类中调用上述三种类中的方法以实FirstWindow现监听器,将其放在类的外部,增强代码的可读性,具体实现过程如下:FirstWindow、类1FirstWindow
①先对所要建立的各个组件进行声明,如JMenuBar menubar;JMenu中对所要建立的窗体进行初始化,代码如下:;在构造方法menu1,menu2,menu3,menu4;JTextArea textl;JCheckBoxMenuItem boxFirstWindowsetTitles;〃设置标题setSize550,600;//设置窗口大小setLocation240,l20;〃设置窗口位置setVisibletrue;//设置窗口是否可见validate;〃添加组件、文本后进行刷新〃设置缺省关闭方式setDefaultCloseOperationJFrame.DISPOSE_ON_CLOSE;
②创建了各个组件,包括菜单条、菜单、菜单项、按钮、文本区、工具条、文件选menubar textljtb择、菜单项复选框应用到的类有、、fileChooser box,JMenuBar JmenuJmenultem Jbutton;并为一些菜单项添加快捷方式以及图标,JtextArea JtoolBarJfileChooser JcheckBoxMenuItem使用到以下代码(并非全部代码,仅用其中部分为例,下同):itemnew=new JMenuItem新建N”,new Imagelconnnew.gifn;itemnew.setAcceleratorKeyStroke.getKeyStrokeKeyEvent.VK_N,InputEvent.CTRL_MASK;
③调用方法将组件添加到窗体、菜单项添加到菜单、菜单添加到菜单条、按钮添加到工add〃菜单项添加到菜单menu l.additemnew;具栏中,代码如下://菜单添加到菜单条menubar.addmenu1;〃菜单项添加到弹出菜单pm.additemcutl;〃添加工具栏项toolbox.addnew1;
④为鼠标添加鼠标事件,应用匿名类方法,实现右击鼠标弹出一个弹出菜单,进行相应操作,代码如下:tcxtl.addMouscListcncrncw MouseAdaptcr{public voidmouseClickedMouseEvent e{ife.getModifiers==InputEvent.BUTTON3_MASK{pm.showtext1,e.getX,e.getY;};
⑤添加窗口事件,当点击关闭时,出现一定的保存提示addWindowListenernew WindowAdapter{public voidwindowClosingWindowEvent e{是否在关闭前保存当前文int n1=JOptionPane.showConfirmDialognull,”件?”,”确认对话框?€^日超@.丫£0115_10_^1102;}}出现的效果如图
⑥为各个组件添加监听器,即注册监听器过程,以实现其相应功能,代码如下〃设置菜单项的监听器itemcut.addActionListenerthis;〃设置工具栏项的监听器open
1.addActionListenerthis;〃设置弹出菜单项的监听器itemcut
1.addActionListenerthis;
⑦实现监听器,即对其方法进行重写过程,代码部分为;其中对于查找、查找替换、字体功能的实现分别调用public voidactionPerformed ActionEvente{}类、、中的方法;当点击退出时会弹出确认窗口,提示是否要保存当前文件;点击打change checkFontext开时,会弹出文件选择的窗口,效果如图当点击保存时,弹出文件路径选择窗口,还需将文件写入,应用到文件字符输出流、FileWriter输出缓冲流其过程代码为BufferedWriter,㊀Fil file=fileChooser.getSelectedFile;tryFileWriter writefile=new FileWriterfile;BufferedWriter out=new BufferedWriterwritefile;String s=textl.getText;out.write s;out,close;catchlOException eel{};设置颜色时,弹出颜色选择器对话框,设置字体颜色即前景色else ife.getSource==itemcolor{Color newColor=JColorChooser.showDialogthis,nfefen,text
1.getForeground;//显示有模式的颜色选取器ifnewColor!=nulltextl.setForegroundnewColor;}效果如图、类2Fontset采用行式盒式布局方式将字体、字形、字号从左至右依次放置,创建提示标签、下拉列表与按钮,运用类、;构造方法中,先对字体窗口进行初始化设置,包括窗口大小、位Jlabel ListJbutton Fontset置、是否可见、缺省关闭方式;下拉列表中,字体是通过引入系统存在字体,调用字型与字体大小需要手动添加,因而创建串类型的数组口、并getAvailableFontFamilyNames;size font[],设置默认选择位置,用列表调用方法;为所要实现相应功能的组件添加监听器,并重写其方法selectpublic voidactionPerformedActionEvent e{选择确定ife.getSource==ok{//this.flag=true;this.fontl=this.ll.getSelectedItem;this.type=this.l
2.getSelectedIndex;this.size=this.l
3.getSelectedIndex;this.dispose;二二{〃选择取消}else ife.getSource cancelthis.flag=false;this.dispose;}}{〃返回public Stringfontreturn this.fontl;}{//返回所选择的字型public inttypereturn this.type;}public intsizel{return this.size;}效果如图、类查找3check应用模式匹配与正则表达式相关知识,此窗口布局方式采用从上至下的盒式布局;首先建立模式对象与匹配对象;以及所用的标签、按钮、复选框;再对该窗口进行初始化设置,Pattern pMatcher m包括窗口大小、位置、是否可见、缺省关闭方式;为要进行相应操作的组件添加监听器,并实现监听器当点击查找时,文本区调用方法,从文本开始位置进行查找,直到到达最后的位置,当当前位置select已经到达最后再点击查找下一个时给出相应的提示信息,代码如下:public voidactionPerformedActionEvente{s=fw.textl.getText;str=replaceText.getText;end=fw.textl.getSelectionEnd;start=fw.text
1.getSelectionStart;ifthis.flag{〃区分大小写的匹配}p=Pattern.compilethis.patternText.getText;else{p=Pattern.compilethis.patternText.getText,Pattern.CASE_INSENSITIVE;}m=p.matchers;{〃点击查找ife.getSource==checkifm.find0{fw.text
1.selectm.start,m.end;}else{没有找到与之匹配的内容!提示JOptionPane.showMessageDialogthis,,”JOptionPane.INFORMATION_MESSAGE;}{〃点击查找下一个}else ife.getSource==nextif!m.findend-l{文档查询结束!提示,JOptionPane.showMessageDialogthis,”JOptionPane.INFORMATION_MESSAGE;}else{fw.text1,selectm.start,m.end;}}〃点击取消else ife.getSource==cancel{this.dispose;}。
个人认证
优秀文档
获得点赞 0