Java语言程序设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java语言程序设计报告班级:08计科3班学号:20081003258姓名:唐翰成绩:2011年1月(武汉)Java课程设计1/19记事本程序一、实验要求编写一个记事本程序要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。二、实验背景“记事本”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。下面我们就来看看记事本吧。相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:新建,保存,打印,查找,替换这几个功能。但是“记事本”却拥有一个Word不可能拥有的优点:打开速度快,文件小。我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同,所以对于大小在64KB以下的纯文本的保存最好还是采用记事本。记事本另一项不可取代的功能是:可以保存无格式文件。你可以把记事本编辑的文件保存为:“.html”,“.java”,“.asp”等等任意格式。这使得“记事本”又找到了一个新的用途:作为程序语言的编辑器。翻开任何一本介绍一门编程语言的入门教材,里面都会建议学生在记事本中编写源程序。在此我们利用Java的文件输入输入流来实现简单的记事本小程序。三、运行环境系统:MicrosoftXPSP3软件:Eclipse四、概要设计设计两个类,一个Notepad类继承JFrame类,然后在Notepad类中添加文件打开,新建,保存等方法,就可以直接在编译器中运行程序。1:界面设计在主界面中设计一个新建对象Notepad,由Notepad继续自JFrame,故得到Notepad容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(2,1)布局。2:功能设计在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同界面。3:代码设计编写每个控件的相关代码,并进行调试。五、详细代码1:界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。JMenufileMenu=newJMenu(文件(F));JMenuItemnewItem=newJMenuItem(新建);JMenuItemopenItem=newJMenuItem(打开...);(武汉)Java课程设计2/19JMenuItemsaveItem=newJMenuItem(另存为...);JMenuItemcopyItem=newJMenuItem(复制);JMenuItemtieItem=newJMenuItem(粘贴);JMenuItemaboutItem=newJMenuItem(关于程序);JMenuItemexitItem=newJMenuItem(退出);JMenuformatMenu=newJMenu(设置(S));Stringcolors[]={黑色,蓝色,红色,绿色,粉色,桔黄色};JMenucolorMenu=newJMenu(颜色);JMenusizeMenu=newJMenu(大小);Stringsize[]={10,16,24,36};StringfontNames[]={幼圆,微软雅黑,隶书,楷体_GB2312,华文新魏};JMenufontMenu=newJMenu(字体);StringstyleNames[]={加黑,斜体};JMenuFindMenu=newJMenu(查找(T));FindMenu.setMnemonic('T');JMenuItemsearchMenu=newJMenuItem(查找);JMenuItemreplaceMenu=newJMenuItem(替换);JMenulookMenu=newJMenu(查看(L));//设置菜单项JMenuItemtaiItem=newJMenuItem(状态栏);JMenuhelpMenu=newJMenu(帮助(H));//设置菜单项JMenuItemhelpItem=newJMenuItem(帮助主题);helpMenu.add(helpItem);helpMenu.addSeparator();//设置分割线JMenuItemabout1Item=newJMenuItem(关于记事本...);界面如下:(武汉)Java课程设计3/192功能设计打开窗口事件OpenHander:classOpenHandlerimplementsActionListener{publicvoidactionPerformed(ActionEvente){JFileChooserjc=newJFileChooser();intrVal=jc.showOpenDialog(C3.this);//显示打开文件的对话框if(rVal==JFileChooser.APPROVE_OPTION){Filedir=jc.getCurrentDirectory();Filefile=jc.getSelectedFile();filenameTf.setText(file.getName());dirTf.setText(dir.toString());//在文本域内显示文本文件内容contentTa.setText(read(newFile(dir,file.getName())));}if(rVal==JFileChooser.CANCEL_OPTION){filenameTf.setText(你取消了当前选择!);dirTf.setText();}}}打开时读取文字事件:(武汉)Java课程设计4/19privateStringread(Filefile){//打开时的读取try{BufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(file),GBK));Stringdata=null;StringBufferbuffer=newStringBuffer();while((data=reader.readLine())!=null)buffer.append(data+\n);reader.close();returnbuffer.toString();}catch(IOExceptione){thrownewRuntimeException(e);}}保存事件SaveHandler:classSaveHandlerimplementsActionListener{//保存publicvoidactionPerformed(ActionEvente)(武汉)Java课程设计5/19{JFileChooserjc=newJFileChooser();intrVal=jc.showSaveDialog(C3.this);//显示保存文件的对话框if(rVal==JFileChooser.APPROVE_OPTION){Filedir=jc.getCurrentDirectory();Filefile=jc.getSelectedFile();filenameTf.setText(file.getName());dirTf.setText(dir.toString());write(newFile(dir,file.getName()),contentTa.getText());}if(rVal==JFileChooser.CANCEL_OPTION){filenameTf.setText(你取消了当前选择!);dirTf.setText();}}}粘贴文件:tieItem.addActionListener(newActionListener()//响应粘贴事件{publicvoidactionPerformed(ActionEventevent){contentTa.setText(contentTa.getText()+str);}});查找替换功能:publicvoidshowFind(){setTitle(查找);setSize(280,60);setVisible(true);}publicvoidshowReplace(){setTitle(查找替换);setSize(280,110);setVisible(true);}privatevoidfind(){Stringtext=ta.getText();Stringstr=tFind.getText();intend=text.length();intlen=str.length();intstart=ta.getSelectionEnd();(武汉)Java课程设计6/19if(start==end)start=0;for(;start=end-len;start++){if(text.substring(start,start+len).equals(str)){ta.setSelectionStart(start);ta.setSelectionEnd(start+len);return;}}//若找不到待查字符串,则将光标置于末尾ta.setSelectionStart(end);ta.setSelectionEnd(end);}publicButtongetBFind(){returnbFind;}privatevoidreplace(){Stringstr=tReplace.getText();if(ta.getSelectedText().equals(tFind.getText()))ta.replaceRange(str,ta.getSelectionStart(),ta.getSelectionEnd());elsefind();}六、运行结果七、源码packagep1;(武汉)Java课程设计7/19importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassNotepadextendsJFrame{/***记事本程序*/privatestaticfinallongserialVersionUID=1L;//定义菜单项privatefinalColorcolorValues[]={Color.BLACK,Color.BLUE,Color.RED,Color.GREEN,Color.PINK,Color.ORANGE};privateJRadioButtonMenuItemcolorItems[],fonts[],sizeItems[];privateJCheckBoxMenuItemstyleItems[];privateJLabeldisplayLabel;privateButtonGroupfontGroup,colorGroup,sizeGroup;//创建按钮组对象,实现JRadioButton多选一功能privateintstyle;//定义字体大小intfonti=10;Fontfont;//JRadioButtonr1,r2,r3;//声明按钮对象ButtonGroupbg=newButtonGroup();//privateStringstr=newString();//用来存放用户当前选择的文本//privateJTextFieldfilenameTf=newJTextField(),dirTf=newJTextField();privateJPaneloptPane=newJPanel();privateJPanelnavigetePane=newJPanel();privateJTextAreacontentTa=newJTextArea(5,20);//publicNotepad(Stringtitle){super(title);//设置字体大小//r1=newJRadioButton(10)

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功