Java语言程序设计报告.doc

上传人:scccc 文档编号:12487777 上传时间:2021-12-04 格式:DOC 页数:26 大小:849KB
返回 下载 相关 举报
Java语言程序设计报告.doc_第1页
第1页 / 共26页
Java语言程序设计报告.doc_第2页
第2页 / 共26页
Java语言程序设计报告.doc_第3页
第3页 / 共26页
Java语言程序设计报告.doc_第4页
第4页 / 共26页
Java语言程序设计报告.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Java语言程序设计报告.doc》由会员分享,可在线阅读,更多相关《Java语言程序设计报告.doc(26页珍藏版)》请在三一文库上搜索。

1、累湖f隨Java程序设计课程设计题 目巢湖学院计算机与信息工程学院实验报告记事本程序院(系)计算机与信息工程学院专业软件工程学生姓名杨旋顾莹莹杨灿芳学号130140461301400913014044指导教师许宋泉职称讲师论文子数15875完成日期:2015 年1月3 日巢湖学院2013届本科程序设计报告目录第1章绪论21.1开发工具和开发环境21.1.1 Eclipse21.1.2 JDK(Java Developme nt Kit)21.2设计背景 .2第2章 设计与分析 22.1需求分析22.2功能模块划分错误!未定义书签。2.2.1菜单栏错误!未定义书签。2.2.2文本输入区 .错误!

2、未定义书签。2.2.3状态栏32.2.4右键菜单32.3功能模块流程图3第 3章记事本程序设计 33.1概要设计43.1.1界面设计43.1.2功能设计43.1.3代码设计43.2详细代码4第4章程序测试94.1打开程序94.2点击菜单94.3输入文字104.4点击子菜单10第5章附录115.1心得体会115.2参考文献115.2源码11第1章绪论1.1开发工具和开发环境1.1.1 EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器

3、的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML Strut , JSP,CSS Javascript ,SQL, Hibernate 3。1.1.2 JDK(Java Developme nt Kit)JDK(Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。自从 Java 推出 以来,JDK已经成为使用最广泛的 Java SDK JDK是整个Java的核心,包括了 Java运行环 境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门

4、运行在 x86平台的 Jrocket在服务端运行效率也要比 Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非 常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。1.2设计背景“记事本”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。下面我们就来看看记事本吧。相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:新建,保存,打印,查找,替换这几个功能。但是“记事本”却拥有一个Word不可能拥有的优点:打开 速度快,文件小。我相信对于这一点大家一定是深有感触地,一点就打开; 同样的文本文件用 Word保存和用记事本保存的文件大小就大不相同,所以对于大

5、小在64KB以下的纯文本的保存最好还是采用记事本。记事本另一项不可取代的功能是:可以保存无格式文件。你可以把记事本编辑的文件保存为:“.html ”,“.java ”,“.asp ”等等任意格式。这使得“记事本”又找到了一个新的用途:作为程序语言的编辑器。翻开任何一本介 绍一门编程语言的入门教材,里面都会建议学生在记事本中编写源程序。在此我们利用Java的文件输入输入流来实现简单的记事本小程序。第2章分析与设计2.1需求分析现在网络上各种文档编辑器数不胜数,有 EmEditor , UEStudio , GridinSoft Notepad , Notepad+,win32pad , Skim

6、Edit , UniRed,xint。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或 问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。2.2功能模块分析2.2.1菜单栏(1) 菜单中有“文件”,“编辑”,“设置”,“关于”四个主菜单。(2)“文件”有“打开” “保存” “退出”三个子菜单:分别用于打开文件,保存文 件,退出记事本。(3)“编辑”中有“撤销”,“恢复”,“剪切” “复制”

7、 “粘贴” “剪贴”,“删除”六 个子菜单:用于剪切文字,复制文字,粘贴文字等一系列操作。(4)“设置”中有“自动换行”,“字体颜色”,“恢复设置”三个子菜单,分别用于 设置是否自动换行,字体颜色等。(5)“关于”菜单中有关于记事本程序的制作日期,作者等信息2.2.2文本输入区用到了“ JTextArea ”,给用户输入文字2.2.3状态栏此栏主要功能是显示出字符总长、总行数、当前行、当前列。2.2.4右键菜单此部分为用户设计右键操作,方便用户进行一系列的编辑操作,增强本记事本的用户体验性能。2.3功能模块流程图第3章记事本程序设计3.1概要设计设计两个类,一个 Notepad类继承JFram

8、e类,然后在Notepad类中添加文件打开,新 建,保存等方法,就可以直接在编译器中运行程序。2.1.1 :界面设计在主界面中设计一个新建对象Notepad,由Notepad继续自JFrame,故得到 Notepad容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为 GridLayout(2,1) 布局。3.1.2:功能设计在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同界面。3.1.3 :代码设计编写每个控件的相关代码,并进行调试。3.2详细代码3.2.1 :界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。JMenu file

9、Menu= new JMenu("文件(F)");JMenultem newltem= new JMenultem("新建”);JMenultem openltem= new JMenultem("打开.");JMenultem saveltem= new JMenultem(” 另存为.");JMenultem copyltem= new JMenultem(” 复制");JMenultem tieltem=new JMenultem(” 粘贴");JMenultem aboutltem= new JMenult

10、em(” 关于程序");JMenultem exitltem=new JMenultem(” 退出");JMenu formatMenu= new JMenu(” 设置(S)");String colors=" 黑色","蓝色","红色","绿色","粉色","桔黄色"JMenu colorMenu= new JMenu("颜色");JMenu sizeMenu= new JMenu(” 大小 ”);String size=&

11、quot;10","16","24","36"String fontNames=" 幼圆","微软雅黑","隶书","楷体_GB2312","华文新魏" JMenu fontMenu= new JMenu("字体");String styleNames=" 加黑","斜体"JMenu FindMenu = new JMenu("查找(T)");Fi

12、ndMenu.setMnemonic( 'T');JMenultem searchMenu =new JMenultem("查找”);JMenultem replaceMenu =new JMenultem("替换");JMenu lookMenu= new JMenu("查看(L)" ); / 设置菜单项JMenultem tailtem=new JMenultem("状态栏”);JMenu helpMenu=newJMenu("帮助(H)" ); / 设置菜单项JMenultem helplte

13、m= new JMenultem("帮助主题”); helpMe nu .add(helpltem);helpMenu.addSeparator();/ 设置分割线JMenultem about1ltem= new JMenultem("关于记事本.");5/21巢湖学院2013届本科程序设计报告6/21巢湖学院2013届本科程序设计报告界面如下:3.2.2功能设计打开窗口事件 Ope nHan der:7/21巢湖学院2013届本科程序设计报告class OpenHandler implements ActionListenerpublic void actio

14、nPerformed(ActionEvent e)JFileChooser jc= new JFileChooser();int rVal=jc.showOpenDialog(C3. this ); / 显示打开文件的对话框 if (rVal=JFileChooser. APPROVE_OPTIONFile dir=jc.getCurre ntDirectory();File file=jc.getSelectedFile();filenameTf .setText(file.getName();dirTf .setText(dir.toString();/在文本域内显示文本文件内容conte

15、ntTa .setText(read( new File(dir,file.getName();if (rVal=JFileChooser.CANCEL_OPTI)ONfilenameTf .setText("你取消了当前选择!”);dirTf .setText("");打开时读取文字事件:private String read(File file)/ 打开时的读取try BufferedReader reader= new BufferedReader(new In putStreamReader( new File In putStream(file), &q

16、uot;GBK");String data= null ;Stri ngBuffer buffer=new Stri ngBuffer();while (data=reader.readLine()!=null )buffer.append(data+"n");reader.close();retur n buffer.toStri ng();catch (IOException e)throw new Run timeExceptio n(e);保存事件SaveHandler :class SaveHandler implements ActionListene

17、r/保存public void actionPerformed(ActionEvent e)JFileChooser jc=new JFileChooser();int rVal=jc.showSaveDialog(C3. this ); / 显示保存文件的对话框 if (rVal=JFileChooser.APPROVE_OPT)pNFile dir=jc.getCurre ntDirectory();File file=jc.getSelectedFile();filenameTf .setText(file.getName();dirTf .setText(dir.toString();

18、write( new File(dir,file.getName(),contentTa .getText();if (rVal=JFileChooser. CANCEL_OPTIpNfilenameTf .setText("你取消了当前选择!”);dirTf .setText("");粘贴文件:9/21巢湖学院2013届本科程序设计报告10/21巢湖学院2013届本科程序设计报告tieItem.addActio nListe ner(new Actio nListe ner()/响应粘贴事件#/21巢湖学院2013届本科程序设计报告str );public vo

19、id actionPerformed(ActionEvent event) contentTa .setText( contentTa .getText()+ );查找替换功能:public void showF in d()setTitle("查找");setSize(280,60);setVisible(true);public void showReplace()setTitle("查找替换");setSize(280,110);setVisible(true);private void fin d()String text=ta.getText(

20、);Stri ng str=tFi nd.getText();int en d=texten gth();int len=str.le ngth();int start=ta.getSelect ionEn d();if(start=e nd) start=0;for(;start<=e nd-le n; start+)if(text.substri ng(start,start+le n).equals(str)ta.setSelectio nStart(start);ta.setSelect ionEn d(start+le n);return;/若找不到待查字符串,则将光标置于末尾

21、ta.setSelectio nStart(e nd);ta.setSelect ionEn d(e nd);public Button getBFind() return bFind;private void replace()Stri ng str=tReplace.getText();if(ta.getSelectedText().equals(tFi nd.getText()ta.replaceRa nge(str,ta.getSelect ion Start(),ta.getSelecti onEn d(); else fin d();11/21巢湖学院2013届本科程序设计报告第4

22、章程序测试13回冈4.1打开程序B糅麓的记爭木文件唱谡買童找E MiL)秸BMH4.2点击菜单12/21巢湖学院2013届本科程序设计报告#/21巢湖学院2013届本科程序设计报告13/21巢湖学院2013届本科程序设计报告14/21巢湖学院2013届本科程序设计报告4.3输入文字4.4点击子菜单#/21巢湖学院2013届本科程序设计报告15/21巢湖学院2013届本科程序设计报告第5章附录5.1心得体会此次课程设计有我们寝室一起共同合作完成,花费的时间整整两天。在这期间我们共同协作,互帮互助取得了很好的效率,也为我们构建和谐寝室,学习气氛良好寝室做出了一 定的贡献。在这期间我领略到了团队协作

23、的重要性,也看到了团队合作的高效率性。还有通过这次试验我学习到了其他室友的一些学习方法,比如追查API,如何在短时间内学习一个自己不懂的东西那就是利用好所有的搜索引擎。总之此次课程设计不仅在知识少我是长了见识,在生活上我也长了见识。5.2参考文献a. 黄晓东等编著Java课程设计案例精编(第二版)M.北京:中国水利水电出版社,2007b. 李兴华 等编著Java开发实战经典Java开发实战经典北京:清华大学出版社,2009c. .李尊朝 苏军Java程序设计(第二版)图形用户界面设计、Swing组件中国铁道出版社, 20075.3源码package p1;import javax.swing.

24、*;import java.awt.*;import java.awt.event.*;import java.io.*;public class Notepad extends JFrame /* *记事本程序*/private static/定义菜单项final long serialVersionUID= 1L;private final Color colorValues =Color. BLACKColor. BLUEColor. REQColor. GREEColor. PINKColor. ORANGEprivateJRadioButtonMenultemcolorItems ,

25、 fonts , sizeItems ;private JCheckBoxMenultem styleItems ;private JLabel displayLabel ;private Butt on Group fon tGroup , colorGroup , sizeGroup ;/创建按钮组对象,实现 JRadioButton多选一功能 private int style /定义字体大小 int fonti =10;Font font ;/JRadioButton r1,r2,r3; /声明按钮对象Butt on Groupbg=new Butt on Group();/priva

26、te String str =new String(); II用来存放用户当前选择的文本 /private JTextFieldfile nameTf =new JTextField(),dirTf =new JTextField();privateJPa neloptPa ne=new JPa nel();privateJPa neln avigetePa ne =new JPa nel();private JTextAreaconten tTa =new JTextArea(5,20);/public Notepad(Stri ng title)super (title);/设置字体大小/

27、 r仁new JRadioButton("10");r1.addActio nListe ner(new sizeHa ndler();/ optPa ne.add(r1); /加载按钮到界面上r2=new JRadioButto n("16");r2.addActio nListe ner(new sizeHa ndler();/optPa ne.add(r2);/ r3=new JRadioButton("24");r3.addActio nListe ner(new sizeHa ndler();/ optPa ne.add(r

28、3);/ bg.add(r1); /加载按钮到按钮组/ bg.add( r2);/ bg.add( r3);/dirTf .setEditable( false );/ 设置为不可编辑filenameTf .setEditable( false );/ 设置为不可编辑navigetePane .setLayout( new GridLayout(2,1);navigetePane .add( filenameTf );/ 添力口navigetePane .add( dirTf );Container conten tPa ne=getC onten tPa ne();contentPane.a

29、dd( optPane ,BorderLayout. SOUTH contentPane.add( navigetePane ,BorderLayout.NORT)Hconten tPa ne.add(new JScrollPa ne(contentTa ),BorderLayout.CENTERsetSize(500,300);setVisible( true ); setDefaultCloseOperati on(JF rame.EXIT_ON_CLOS E/设置响应关闭按钮JMenu fileMenu= new JMenu(” 文件(F)");fileMenu.setMnem

30、onic('F' ); / 设置快捷键JMenultem newItem= new JMenultem("新建”); fileMe nu .add( newItem);n ewItem.addActio nListe ner(new ActionListener()/ 显示消息对话框public void actionPerformed(ActionEvent event)contentTa .setText(""););/JMenultem openltem= new JMenultem("打开."); fileMe nu .

31、add(ope nltem);ope nltem.addAct ion Liste ner(n ewOpe nHan dler();JMenultem saveltem= new JMenultem("另存为."); fileMe nu .add(saveltem);fileMenu.addSeparator(); / 设置分割线 saveltem.addAct ion Liste ner(n ewSaveHa ndler();JMenultem copyltem= new JMenultem("复制”); copyltem.setMnemonic( C ); /

32、 设置快捷键 fileMe nu .add(copyltem);copyltem.addActio nListe ner(n ewActio nListe ner()public void acti on Performed(Act ionEvent eve nt)str =contentTa .getSelectedText(););/JMenultem tieltem=new JMenultem("粘贴”);fileMe nu.add(tieltem);tieltem.setMnemonic('V' ); / 设置快捷键fileMenu.addSeparator(

33、); / 设置分割线tieltem.addActio nListe ner(new Actio nListe ner()/响应复制事件响应粘贴事件);public void actionPerformed(ActionEvent event)contentTa .setText( contentTa .getText()+ str);/JMenultem aboutltem= new JMenultem("关于程序”);fileMe nu .add(aboutltem);aboutltem.addAct ion Liste ner(new ActionListener()/ 显示消息

34、对话框public void acti on Performed(Act ionEvent eve nt)JOptionPane. showMessageDialogNotepad. this ,"这是(*A_A*)的记事本","About" ,JOptionPane. PLAIN_MESSAGE);JMenultem exitltem=new JMenultem("退出”);fileMe nu.add(exitltem);exitltem.addActionListener(/ 响应退出事件new Actio nListe ner()publ

35、ic void acti on Performed(Act ionEvent eve nt)System. exit (0););JMe nuBar bar= new JMen uBar();setJMenuBar(bar);/ 在frame 中设置菜单条bar.add(fileMe nu);JMenu formatMenu= new JMenu("设置(S)");formatMenu.setMnemonic( 'S');String colors= "黑色”,”蓝色”,”红色”,”绿色”,”粉色”,”桔黄色" JMenu colorMe

36、nu= new JMenu("颜色”);JMenu sizeMenu= new JMenu("大小”);String size= "10","16","24","36" ;sizeltems =new JRadioButtonMenultemsize.length ;sizeGroup =new Butt on Group();/colorltems =new JRadioButtonMenultemcolors.length ;colorGroup =new Butt on Group();l

37、temHa ndler itemHa ndler=new ltemHa ndler();for (int count=0;count<colors.length ;count+)colorltems co un t=new JRadioButt onMen ultem(colorsco un t);colorMenu.add( colorItems count);colorGroup .add( colorItems count);colorItems co un t.addActi on Liste ner(itemHa ndler);colorItems 0.setSelected(

38、true );formatMe nu .add(colorMe nu);formatMenu.addSeparator();/ 设置分割线sizeItems =new JRadioButtonMenultemcolors.length ;sizeGroup =new Butt on Group();for (int count=0;count<size.length ;count+)sizeItems count=new JRadioButt onMen ultem(sizeco un t);sizeMenu.add( sizeItems count);sizeGroup .add( s

39、izeItems count);sizeItems count.addActionListener(itemHandler);formatMe nu.add(sizeMe nu);sizeItems 0.setSelected(true );formatMenu.addSeparator(); / 设置分割线String fontNames="幼圆",”微软雅黑","隶书","楷体_GB2312","华文新魏"JMenu fontMenu= new JMenu("字体”);fonts =new

40、JRadioButtonMenultemfontNames.length ;fon tGroup =new Butt on Group();for (int count=0;count< fonts . length ;count+)fonts count= new JRadioButtonMenultem(fontNamescount);fontMenu.add( fonts count);fontGroup .add( fonts count);fonts count.addActionListener(itemHandler);fonts 0.setSelected(true );

41、fontMenu.addSeparator();/ 设置分割线String styleNames="加黑","斜体"styleltems =new JCheckBoxMenultemstyleNames.length ;StyleHa ndler styleHa ndler=new StyleHa ndler();for (int count=0;count<styleNames.length ;count+)styleitems co un t= new JCheckBoxMe nultem(styleNamesco un t); fontMen

42、u.add( styleitems count);styleitems co un t.additemListe ner(styleHa ndler);formatMe nu .add(fo ntMe nu);bar.add(formatMenu); / 添加到菜单项JMenu FindMenu =new JMenu("查找(T)");FindMenu.setMnemonic( T );JMenultem searchMenu =new JMenultem("查找”);JMenultem replaceMenu =new JMenultem("替换&qu

43、ot;);Fin dMe nu .add(searchMe nu);Fin dMe nu .add(replaceMe nu);searchMe nu .addAct ion Liste ner(new ActionListener()/ 显示消息对话框public void action Performed(Acti onEvent eve nt) JFrame ss = new JFrame("查找");JLabel tt =new JLabel("查找”);JTextField txt = new JTextField();JButton but =new

44、JButt on("查找");ss.setLayout(null );ss.setLocati on (150,150);Dime nsi on dim =new Dime nsi on();dim.setSize(300, 100);tt.setBounds(10,20, 40, 20);txt.setBou nds(70,20,100,20);but.setBou nds(190,20,80,20);/显示消息对话框but.addAct ion Liste ner(new Actio nListe ner() public void actio nPerformed(A

45、ctio nEvent event)JOptionPane. showMessageDialogNotepad. this"查找成功了 ",”查找",JOptionPane. PLAlN_MESSAGE );ss.add(but);ss.add(txt);ss.add(tt);ss.setSize(dim); ss.setVisible( true ););replaceMe nu.addActio nListe ner(new ActionListener()/ 显示消息对话框public void action Performed(Acti onEvent e

46、ve nt)JFrame ss = new JFrame(”替换");JLabel tt = new JLabel("替换”);JTextField txt = new JTextField();JButton but =new JButt on("替换");ss.setLayout(null );ss.setLocati on (150,150);Dime nsi on dim =new Dime nsi on();dim.setSize(300, 100);tt.setBounds(10,20, 40, 20);txt.setBou nds(70,20,100,20); but.setBou nds(190,20,80,20);but.addAct ion Liste ner(new ActionListener()/ 显示消息对话框public

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1