java记事本课程设计报告_第1页
java记事本课程设计报告_第2页
java记事本课程设计报告_第3页
java记事本课程设计报告_第4页
java记事本课程设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.课程设计报告(本科)课程: 面向对象程序设计学号:1110421122 1110421086 姓名: 潘雨胜 邵阳班级: 网络工程2班教师: 钱田芬时间: 2013.11.20-2013.12.20计算机科学与技术系;设计名称:编写一个记事本程序设计内容、目的与要求:1实验内容1.1编写一个简单记事本程序;1.2能实现编辑、保存、另存为、查找替换等功能2实验要求2.1用图形用户界面实现;2.2用文件输入输出流编译。2.3实现文件和编辑菜单里的功能;3实验目的3.1能够实现基本的文件录入即新建事件的功能;3.2能够实现事件的保存和另存功能以及事件的删除;3.3能够实现事件的查找和替换功能,保证

2、程序的可修改性;3.4能够实现事件内容的复制,粘贴和拷贝功能;3.5最后是关于对改程序的帮助即改程序的介绍。计划与进度安排:2013.11.20-2013.11.30 对题目有基本的思路 怎样去编译程序,查阅资料,惊醒初步的准备工作;2013.12.01-2013.12.10 编译程序并上机调试运行,看是否能正确运行,并将有用的实验结果截图保存,编写文档,将程序每部步实现的功能,用电子文档的形式表达出来,并且用图文并茂的方式表现出自己的每一步设计思路;2013.12.10-2013.12.20 将编译好的源程序和电子文档仔细查看,再次运行检查是否有误,然后再将电子文档打印成册,将程序以及电子文

3、档让验收老师验收,如果有误还需再次修改。 设计过程、步骤(可加页):4需求分析4.1系统概述;该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。该程序主要用到了Java swing和事件监听等。4.2功能需求描述; 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1).菜单中有“文件”,“编辑”,“关于”三个主菜单。(2)“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另外保存文件,

4、退出记事本。(3)“编辑”中有“剪切”“复制”“粘贴”“全选”“查找”“替换”六个字菜单:用于剪切文字,复制文字,粘贴文字,全部选中。增加了“查找”“替换”子菜单来对文字进行查找和替换。(4)“关于”菜单中有关于记事本程序的制作日期,作者等信息。4.3总体设计 开发与设计的总体思想: 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。JTextArea主要用来输入文本。 系统模块结构图 模块设计 系统模块流程图 5详细设计 5.1主界面模块首先创

5、建一个名为Notebook的类并继承Frame类实现监听接口作为最底层的容器(具体过程在“4.3.2自定义类及接口说明”作说明)。菜单栏中有“文件”、“编辑”、“帮助”三项菜单,分别添加的相应的项,各实现其功能。 5.1.1主界面主要代码public Notebook()this.setTitle("记事本");contianer=this.getContentPane();contianer.setLayout(new BorderLayout();jta=new JTextArea();contianer.add(jta);JMenuBar mb=new JMenuBa

6、r();buildMainMenu(mb);this.setJMenuBar(mb);this.setVisible(true);this.setSize(650, 450); 5.2文件界面5.2.1文件界面包括新建(new)、打开(open)、保存(save)和另存(saves)为退出(exit)等功能,通过给各功能初始化容器、初始化组件、设置事件监听器,下面有其实现方法: void buildMainMenu(JMenuBar mb) JMenu fileMenu=new JMenu("文件(F)");fileMenu.setMnemonic(KeyEvent.VK_

7、F);JMenuItem newMenuItem=new JMenuItem("新建");fileMenu.add(newMenuItem);JMenuItem openMenuItem=new JMenuItem("打开");openMenuItem.setMnemonic(KeyEvent.VK_O);openMenuItem.addActionListener(new OpenActionListener();fileMenu.add(openMenuItem);JMenuItem saveMenuItem=new JMenuItem("

8、保存");saveMenuItem.setMnemonic(KeyEvent.VK_S);saveMenuItem.addActionListener(new SaveActionListener();fileMenu.add(saveMenuItem);JMenuItem saveasMenuItem=new JMenuItem("另存为");saveasMenuItem.setMnemonic(KeyEvent.VK_A);saveasMenuItem.addActionListener(new SaveActionListener();fileMenu.ad

9、d(saveasMenuItem);JMenuItem exitMenuItem=new JMenuItem("退出");exitMenuItem.setMnemonic(KeyEvent.VK_E); 5.2.2各部分截图; 打开界面截图; 保存部分截图; 退出部分截图 5.2.3各部分实现的功能框图 保存) 新建5.3 编辑界面 5.3.1主要有剪切、复制、粘贴、查找和替换功能,通过cut,copy,paste,serach和ache实现各功能,然后对每个功能初始化容器、初始化组件、设置事件监听器保证功能的实现,下面是实现各功能的主要代码:exitMenuItem.ad

10、dActionListener(new ExitActionListener();fileMenu.add(exitMenuItem);mb.add(fileMenu);JMenu editMenu=new JMenu("编辑(E)");editMenu.setMnemonic(KeyEvent.VK_E);JMenuItem cutMenuItem=new JMenuItem("剪切");cutMenuItem.setMnemonic(KeyEvent.VK_T);cutMenuItem.setAccelerator(KeyStroke.getKeyS

11、troke(KeyEvent.VK_X, ActionEvent.CTRL_MASK);cutMenuItem.addActionListener(new CutActionListener();editMenu.add(cutMenuItem);JMenuItem copyMenuItem=new JMenuItem("复制");copyMenuItem.setMnemonic(KeyEvent.VK_C);copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_

12、MASK);copyMenuItem.addActionListener(new CopyActionListener();editMenu.add(copyMenuItem);JMenuItem pasteMenuItem=new JMenuItem("粘贴");pasteMenuItem.setMnemonic(KeyEvent.VK_P);pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteMenuItem.addActionLis

13、tener(new PasteActionListener();editMenu.add(pasteMenuItem);JMenuItem sallMenuItem=new JMenuItem("全选");sallMenuItem.setMnemonic(KeyEvent.VK_A);sallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK);sallMenuItem.addActionListener(new SallActionListener();ed

14、itMenu.add(sallMenuItem);JMenuItem searchMenuItem=new JMenuItem("查找");searchMenuItem.setMnemonic(KeyEvent.VK_S);searchMenuItem.addActionListener(new SearchActionListener();editMenu.add(searchMenuItem);JMenuItem chanMenuItem=new JMenuItem("替换");chanMenuItem.setMnemonic(KeyEvent.VK

15、_G);chanMenuItem.addActionListener(new ChanActionListener();editMenu.add(chanMenuItem);mb.add(editMenu); 5.3.2截图; 剪切 查找替换5.3.3各功能的实现框图; 剪切粘贴删除 5.4帮助界面 5.4.1帮助界面主要是对该程序的介绍,以及设计人员的介绍,通过about方法来实现的,下面是主要的代码:JMenu helpMenu=new JMenu("帮助(H)");helpMenu.setMnemonic(KeyEvent.V

16、K_H);JMenuItem abouthMenuItem=new JMenuItem("关于记事本");abouthMenuItem.setMnemonic(KeyEvent.VK_A);abouthMenuItem.addActionListener(new AbouthActionListener();helpMenu.add(abouthMenuItem);mb.add(helpMenu); 5.4.2帮助部分截图: 6、原代码import java.awt.*;import java.awt.event.ActionEvent;import java.awt.ev

17、ent.ActionListener;import java.awt.event.KeyEvent;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;public class Notebook extends JFrame Container contianer;JFileChooser fc=new JFileChooser(); File file=null; JTextArea jta; private MyFindDialog fd = new MyF

18、indDialog(this, jta);public Notebook()this.setTitle("记事本");contianer=this.getContentPane();contianer.setLayout(new BorderLayout();jta=new JTextArea();contianer.add(jta);JMenuBar mb=new JMenuBar();buildMainMenu(mb);this.setJMenuBar(mb);this.setVisible(true);this.setSize(650, 450); void buil

19、dMainMenu(JMenuBar mb) JMenu fileMenu=new JMenu("文件(F)");fileMenu.setMnemonic(KeyEvent.VK_F);JMenuItem newMenuItem=new JMenuItem("新建");fileMenu.add(newMenuItem);JMenuItem openMenuItem=new JMenuItem("打开");openMenuItem.setMnemonic(KeyEvent.VK_O);openMenuItem.addActionList

20、ener(new OpenActionListener();fileMenu.add(openMenuItem);JMenuItem saveMenuItem=new JMenuItem("保存");saveMenuItem.setMnemonic(KeyEvent.VK_S);saveMenuItem.addActionListener(new SaveActionListener();fileMenu.add(saveMenuItem);JMenuItem saveasMenuItem=new JMenuItem("另存为");saveasMenuI

21、tem.setMnemonic(KeyEvent.VK_A);saveasMenuItem.addActionListener(new SaveActionListener();fileMenu.add(saveasMenuItem);JMenuItem exitMenuItem=new JMenuItem("退出");exitMenuItem.setMnemonic(KeyEvent.VK_E);exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E ,ActionEvent.CTRL_MASK);

22、exitMenuItem.addActionListener(new ExitActionListener();fileMenu.add(exitMenuItem);mb.add(fileMenu);JMenu editMenu=new JMenu("编辑(E)");editMenu.setMnemonic(KeyEvent.VK_E);JMenuItem cutMenuItem=new JMenuItem("剪切");cutMenuItem.setMnemonic(KeyEvent.VK_T);cutMenuItem.setAccelerator(Ke

23、yStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK);cutMenuItem.addActionListener(new CutActionListener();editMenu.add(cutMenuItem);JMenuItem copyMenuItem=new JMenuItem("复制");copyMenuItem.setMnemonic(KeyEvent.VK_C);copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Ac

24、tionEvent.CTRL_MASK);copyMenuItem.addActionListener(new CopyActionListener();editMenu.add(copyMenuItem);JMenuItem pasteMenuItem=new JMenuItem("粘贴");pasteMenuItem.setMnemonic(KeyEvent.VK_P);pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteMenuIt

25、em.addActionListener(new PasteActionListener();editMenu.add(pasteMenuItem);JMenuItem sallMenuItem=new JMenuItem("全选");sallMenuItem.setMnemonic(KeyEvent.VK_A);sallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK);sallMenuItem.addActionListener(new SallActi

26、onListener();editMenu.add(sallMenuItem);JMenuItem searchMenuItem=new JMenuItem("查找");searchMenuItem.setMnemonic(KeyEvent.VK_S);searchMenuItem.addActionListener(new SearchActionListener();editMenu.add(searchMenuItem);JMenuItem chanMenuItem=new JMenuItem("替换");chanMenuItem.setMnemo

27、nic(KeyEvent.VK_G);chanMenuItem.addActionListener(new ChanActionListener();editMenu.add(chanMenuItem);mb.add(editMenu);JMenu helpMenu=new JMenu("帮助(H)");helpMenu.setMnemonic(KeyEvent.VK_H);JMenuItem abouthMenuItem=new JMenuItem("关于记事本");abouthMenuItem.setMnemonic(KeyEvent.VK_A);a

28、bouthMenuItem.addActionListener(new AbouthActionListener();helpMenu.add(abouthMenuItem);mb.add(helpMenu); class MyFindDialog extends JDialog implements ActionListener private Label l1 = new Label("查找字符串"); private Label l2 = new Label("替换字符串"); private TextField tf1 = new TextFie

29、ld(10); private TextField tf2 = new TextField(10); private Button b1 = new Button("向下查找"); private Button b2 = new Button("替换"); public MyFindDialog(Frame owner, JTextArea jta) super(owner, "查找", false); setLayout(null); l1.setBounds(10, 30, 80, 20); l2.setBounds(10, 70

30、, 80, 20); tf1.setBounds(90, 30, 90, 20); tf2.setBounds(90, 70, 80, 20); b1.setBounds(190, 30, 80, 20); b2.setBounds(190, 70, 80, 20); add(l1); add(l2); add(tf1); add(tf2); add(b1); add(b2); setResizable(false); b1.addActionListener(this); b2.addActionListener(this); public void showFind() setTitle(

31、"查找"); setSize(280, 300); setVisible(true); public void showReplace() setTitle("查找替换"); setSize(280,300); setVisible(true); private void find() String content = jta.getText(); String str = tf1.getText(); int pp=jta.getCaretPosition(); int end=content.length(); String text=content

32、.substring(pp,end); if(str!=null&&!str.equals("") int start=text.indexOf(str); if(start>=0) start=start+pp; jta.setSelectionStart(start); jta.setSelectionEnd(start+str.length(); else javax.swing.JOptionPane.showMessageDialog(this,"成功完成向下查找!","查找完毕",JOptionPan

33、e.OK_OPTION | JOptionPane.INFORMATION_MESSAGE); private void replace() String str2 = tf2.getText(); find(); jta.replaceRange(str2, jta.getSelectionStart(),jta.getSelectionEnd(); public void actionPerformed(ActionEvent e) if (e.getSource() = b1) find(); else if (e.getSource() = b2) replace(); class S

34、aveActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file!=null) fc.setSelectedFile(file); int returnVal=fc.showSaveDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); saving(); void saving() try FileWriter Writef=new FileWr

35、iter(file); Writef.write(jta.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); class OpenActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file !=null)fc.setSelectedFile(file); int returnVal=fc.showOpenDialog(Notebook.this); if(returnVal=JFileChoos

36、er.APPROVE_OPTION) file=fc.getSelectedFile(); unfold(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); jta.setText(new String(buffer); catch(Exception e)e.printStackTrace(); class ExitActionListen

37、er implements ActionListenerpublic void actionPerformed(ActionEvent e) setVisible(false); dispose(); System.exit(0);class CutActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.cut();class CopyActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.copy();class PasteActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.paste();class SallActionListener impleme

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论