Windows记事本程序开发.doc_第1页
Windows记事本程序开发.doc_第2页
Windows记事本程序开发.doc_第3页
Windows记事本程序开发.doc_第4页
Windows记事本程序开发.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

黑龙江工程学院课 程 设 计题 目:Windows记事本程序开发 学生姓名: 刘杰学 号: 12系部名称: 计算机科学与技术系 专业班级: 软件工程06-1指导教师: 白劲波、石磊职 称: 副教授、助教二八年七月十八日SY-027课 程 设 计 任 务 书组内学生姓名刘杰人数1系部名称计算机科学与技术系专业软件工程班级、学号06-1 (12号)指导教师姓名白劲波、石磊职称副教授、助教从事专业计算机应用题目名称简易编译器一、课程设计的目的、意义Java语言课程设计的目的是我们在学习和掌握相关课程的基础上,将自己的专业知识综合运用,并将其运用到实践中,以提高我们在程序设计上的应用能力。初步了解系统开发的流程,具备简单的数据库操纵能力,为后续课程打下一个基础。二、课程设计的主要内容、技术要求(包括原始数据、技术参数、设计要求、工作量要求等) 三、课程设计完成后应提交的成果1.课程设计工作日志2.课程设计报告四、课程设计的工作进度安排2008.7.14 构建窗体 2008.7.15 在窗体上添加工具条、按钮并设计菜单栏2008.7.16 设置监听器2008.7.17 撰写报告五、备注指导教师签字:年 月 日教研室主任签字: 年 月 日目 录第1章 需求分析11.1 系统的功能需求11.2 功能实现1第2章 概要设计32.1 功能设计3第3章详细设计43.1 窗体的实现43.2 按钮的实现53.3 菜单栏的实现63.4 菜单项的实现8第4章调试分析144.1调试的目的144.2调试14第5章使用说明155.1简易编译器的使用说明15第6章测试结果176.1系统测试176.2测试过程17第7章课程设计总结1819第1章 需求分析1.1需求分析本课程设计是一个关于简易编译器系统的设计,系统包括创建窗体框、创建显示文件的多行文本区域、安装按钮、安装工具条和设计菜单栏。简易编译器可以完成简单的文本编译基本操作。1、窗体:Frame是带有标题和边界的顶层窗口。frame 的大小包括边界指定的所有区域。边界区域的尺寸可以使用 getInsets 方法获得,但是,由于这些尺寸是与平台相关的,因此在通过调用 pack 或 show 将 frame 设置为可显示的之前,无法获得有效的 insets 值。由于 frame 的总大小包括了边界区,因此边界有效地模糊了 frame 的部分区域,约束了可用于在矩形中呈现和/或显示子部件的区域,矩形左上角的位置为 (insets.left, insets.top),宽度为 width - (insets.left + insets.right),长度为 height - (insets.top + insets.bottom)。 2、按钮:操作人员可以通过Button 来选择进入其他页面来完成各项任务和功能。3、工具条:提供了一个用来显示常用的 Action 或控件的组件。有关使用工具栏的示例和信息,请参阅The Java Tutorial中的 How to Use Tool Bars 一节。 对于大多数的外观,用户可以将工具栏拖到单独的窗口中(除非 floatable 属性被设置为 false)。为了正确执行拖动,建议将 JToolBar 实例添加到容器的四“边”中的一边(其中容器的布局管理器为 BorderLayout),并且不在其他四“边”中添加任何子级。 4、文本的多行区域:是一个显示纯文本的多行区域。它作为一个轻量级组件,提供与 java.awt.TextArea 类的源兼容性,理应如此。有关使用所有文本组件的信息和示例,请参阅The Java Tutorial中 Using Text Components 一节。 此组件具有 java.awt.TextArea 类中没有的功能。有关其他功能,请参考超类。还有 JTextPane 和 JEditorPane 也是具有更多功能的多行文本类。 java.awt.TextArea 在内部处理滚动。JTextArea 的不同之处在于,它不管理滚动,但实现了 swing Scrollable 接口。这允许把它放置在 JScrollPane 的内部(如果需要滚动行为),或者直接使用(如果不需要滚动)。 java.awt.TextArea 具有换行能力。这由水平滚动策略来控制。由于滚动不是由 JTextArea 直接完成的,因此必须通过另一种方式来提供向后兼容性。JTextArea 具有用于换行的 bound 属性,该属性控制其是否换行。在默认情况下,换行属性设置为 false(不换行)。 第2章 概要设计2.1功能设计简易编译器系统包括创建窗体框、创建显示文件的多行区域、安装按钮、安装工具条和设计菜单栏。简易编译器可以完成简单的文本编译基本操作。1、 创建窗体:Frame的默认布局为 BorderLayout。 使用 setUndecorated,frame 可以关闭本机装饰(例如 Frame 和 Titlebar)。只有在 frame 不是displayable 时才能完成此操作。 在多屏幕环境中,通过使用Frame(GraphicsConfiguration) 或Frame(String title,GraphicsConfiguration) 构造 Frame,可以在不同的屏幕设备上创建 Frame。GraphicsConfiguration 对象是目标屏幕设备的 GraphicsConfiguration 对象之一。 2、安装按钮:用于贴图,指导用户使用系统。3、工具条:用于安置菜单栏和按钮。4、文本的多行区域:Java.awt.TextArea 具有换行能力。这由水平滚动策略来控制。由于滚动不是由 JTextArea 直接完成的,因此必须通过另一种方式来提供向后兼容性。JTextArea 具有用于换行的 bound 属性,该属性控制其是否换行。在默认情况下,换行属性设置为 false(不换行)。 java.awt.TextArea 具有两个属性 rows 和 columns,这两个属性用来确定首选大小。JTextArea 用这些属性来指示 viewport 的首选JScrjava.awt.TextArea 提供的功能。JTextArea 具有显示所有文本所需的首选大小,以便在 JScrollPane 内部正常工作。如果 rows 或 columns 的值等于 0,则沿该轴的首选大小将用于沿相同轴上 viewport 的首选大小。 第3章 详细设计 3.1 窗体实现 窗体:为用户提供支撑平台和工作环境,窗体的创建是通过使用java中已定义的JFrame类实现的,JFrame类与JFrame 不同,当用户试图关闭窗口时,JFrame 知道如何进行响应。用户关闭窗口时,默认的行为只是简单地隐藏 JFrame。窗体实现如如图3.2所示图3.1窗体的实现实现创建窗体通过以下代码实现的:import java.awt.*;import javax.swing.*;class MyFramepublic static void main(String args) JFrame f=new JFrame(); /创建窗体 f.setTitle(简易编译器); /窗体标题 f.setSize(300,300); /窗体大小 f.setLocation(400,300); f.setVisible(true);/总的面板呈现 3.2安装按钮的实现 安装按钮:首先在窗体中添加布局管理器,通过使用BorderLayout类实现,BorderLayout这是一个布置容器的边界布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:南、北、东、西和中间区域。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST 和 CENTER。当使用边界布局将一个组件添加到容器中时,要使用这五个常量之一。其次使用JButton类添加工具条按钮,调用JToolBar类显示常用的 Action 或控件的组件。再次使用JTextArea类用于显示纯文本的多行区域。工具条贴图,指导用户使用系统如图3.2所示。图3.2按钮页面按钮页面是通过以下代码实现的:import java.awt.*;import javax.swing.*;class MyFrame public static void main (String args) JFrame f=new JFrame(); f.setTitle(简易文字编译器); f.setSize(300,300); BorderLayout border=new BorderLayout(); f.setLayout(border); JButton b1=new JButton(new ImageIcon(e:/paste.JPG ); /添加按钮 JButton b2=new JButton(new ImageIcon(e:/copy.JPG ); JButton b3=new JButton(new ImageIcon(e:/cut.JPG ); JButton b4=new JButton(new ImageIcon(e:/MS1.JPG ); JButton b5=new JButton(new ImageIcon(e:/MS2.JPG ); JToolBar tb=new JToolBar(); /控制组件 JTextArea ta=new JTextArea(); /多行文本区tb.add(b1); /在工具条上的文本域内加入按钮tb.add(b2);tb.add(b3)tb.add(b4);tb.add(b5);f.add(North,tb);/将工具条加入面板f.add(Center,ta);/将文本域加入工具条f.setVisible(true);3.3菜单栏的实现 菜单栏:包括菜单有文件、编辑、工具和帮助,其中菜单下面还包括菜单项。使用java中JMenu类创建菜单栏,JMenuBar用于菜单栏的实现。将 JMenu 对象添加到菜单栏以构造菜单。用户通过菜单栏来对简易文字编译器进行操作如图3.3所示。图3.3菜单栏实现的页面菜单栏页面是通过以下代码实现的:import java.awt.*;import javax.swing.*;class MyFramepublic static void main (String args)JFrame f=new JFrame();f.setTitle(简易文字编译器);f.setSize(300,300); BorderLayout border=new BorderLayout(); f.setLayout(border);JButton b1=new JButton(new ImageIcon(e:/paste.JPG ); JButton b2=new JButton(new ImageIcon(e:/copy.JPG); JButton b3=new JButton(new ImageIcon(e:/cut.JPG ); JButton b4=new JButton(new ImageIcon(e:/MS1.JPG ); JButton b5=new JButton(new ImageIcon(e:/MS2.JPG ); JToolBar tb=new JToolBar(); JTextArea ta=new JTextArea();tb.add(b1);/在工具条上的文本域内加入按钮 tb.add(b2); tb.add(b3); tb.add(b4);tb.add(b5); f.add(North,tb);/将工具条加入面板 f.add(Center,ta);/将文本域加入工具条 JMenuBar mb=new JMenuBar();/实现菜单栏 f.setJMenuBar(mb); JMenu m=new JMenu(文件);/菜单的创建 JMenuItem m1=new JMenuItem(新建); JMenuItem m2=new JMenuItem(打开);JMenuItem m3=new JMenuItem(保存);JMenuItem m4=new JMenuItem(退出); mb.add(m); m.add(m1); m.add(m2);f.setVisible(true); 3.4菜单项的实现 菜单项:文件菜单项包括:退出新建、打开、保存和退出;编辑菜单项包括:复制、剪切、粘贴、全选及调色板;工具菜单项包括:计算器和记事本。使用事件监听器为菜单栏添加菜单项,事件监听器使用类ActionListener实现,用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的 addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的 actionPerformed 方法。使用JMenuItem实现菜单中的项。菜单项本质上是位于列表中的按钮。当用户选择“按钮”时,将执行与菜单项关联的操作。在事件监听器中通过copy()方法实现复制,cut()方法实现剪切,paste()方法实现粘贴,selectAll()方法实现全选,JColorChooser.showDialog()方法实现调色板,Runtime.getRuntime()实现计算器和记事本菜单项。 图3.4菜单项实现的页面菜单项页面实现代码如下:import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;class MyFramepublic static void main(Stringargs)final JFrame f=new JFrame();f.setTitle(简易文字编辑器);f.setSize(300,300);f.setLocation(400,300);f.setBackground(Color.red);BorderLayout border=new BorderLayout();f.setLayout(border); JButton b1=new JButton(new ImageIcon (e:/paste.JPG);JButton b2=new JButton(new ImageIcon (e:/copy.JPG);JButton b3=new JButton(new ImageIcon (e:/cut.JPG);JButton b4=new JButton(new ImageIcon (e:/MS1.JPG);JButton b5=new JButton(new ImageIcon (e:/MS2.JPG);b1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(第一个按钮);); b2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(第二个按钮);); b3.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(第三个按钮);); b4.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(第四个按钮);); b5.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(第五个按钮););JToolBar tb=new JToolBar();final JTextArea ta=new JTextArea(); JMenuBar mb=new JMenuBar();JMenu m=new JMenu(文件);JMenu m1=new JMenu(编辑);JMenu m2=new JMenu(工具);JMenu m3=new JMenu(帮助);JMenuItem mi1=new JMenuItem(新建);JMenuItem mi2=new JMenuItem(打开); JMenuItem mi3=new JMenuItem(保存); JMenuItem mi4=new JMenuItem(退出); JMenuItem mi31=new JMenuItem(Ms计算器); JMenuItem mi32=new JMenuItem(MS记事本); mi32.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)tryRuntime.getRuntime().exec(calc.exe);Runtime.getRuntime().exec(notepad.exe);catch(Exception ex)ex.printStackTrace();); mi4.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.exit(0);); JMenuItem mi21=new JMenuItem(复制); JMenuItem mi22=new JMenuItem(剪切); JMenuItem mi23=new JMenuItem(粘贴); JMenuItem mi24=new JMenuItem(全选); JMenuItem mi25=new JMenuItem(调色板); mi1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Date d=new Date();String ds=d.toString();ta.setText(ds);/System.out.println(新建一个文件);); mi2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(打开一个文件););mi3.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)System.out.println(保存一个文件);); mi21.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)ta.copy();); mi22.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)ta.cut();); mi23.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)ta.paste();); mi24.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)ta.selectAll();); mi25.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Color c= JColorChooser.showDialog(f,我的调色板,Color.red);ta.setForeground(c);); f.setJMenuBar(mb);mb.add(m); mb.add(m1);mb.add(m2);mb.add(m3); m.add(mi1);m.add(mi2);m.add(mi3); m.add(mi4);m1.add(mi21); m1.add(mi22); m1.add(mi23); m1.add(mi24); m1.add(mi25);m2.add(mi31);m2.add(mi32);f.add(North,tb);f.add(Center,ta);tb.add(b1);tb.add(b2);tb.add(b3);tb.add(b4); tb.add(b5);f.setVisible(true);第4章 调试分析4.1调试的目的调试的目的是为了确定发生错误的内在原因和位置,并改正错误,因此调试也称为纠错。4.2调试简易编译器完成了整个系统的构建,开始调试并发生如下错误如图4.1所示:图4.1菜单项实现的页面4.2.1出错的程序段: JToolBar tb=new JToolBar();JTextArea ta=new JTextArea();4.2.2出错的原因:因为匿名内部类不能访问局部变量,加final使其变为常量,4.2.3出错的解决方法:将JTextArea ta=new JTextArea()改为final JTextArea ta=new JTextArea()4.2.4经验和体会:调试是程序员自己进行的的技巧性很强的工作,要确定错误的内在原因和位置,它占整个调试工作量的90%左右,需要繁重的脑力劳动和丰富的经验。第5章 使用说明5.1简易编译器的使用说明5.1.1打开简易编译器5.1.

温馨提示

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

最新文档

评论

0/150

提交评论