windows绘图板_第1页
windows绘图板_第2页
windows绘图板_第3页
windows绘图板_第4页
windows绘图板_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、Windows绘图系统的设计与实现 滨江学院软件工程课程设计报告( 2013 - 2014 年度第 1学期)课程名称: 软件工程课程设计 题 目: Windows绘图板的设计与实现 专 业: 计算接科学与技术 班 级: 计科1班 学 号: 20112308021 姓 名: 王昊 指导教师: 李振宏 设计周数: 两周 日期:2013 年 11 月 20 日目录绪论···················

2、3;·················································

3、3;···3摘要··············································&

4、#183;··························3一、课程设计目的与要求·····················&

5、#183;·································3二、设计正文···············

6、··················································

7、4 1、概述·················································

8、·················4 1.1 课题题目·······························&#

9、183;····························4 1.2 系统主要目标···················&#

10、183;·····································4 1.3 系统的开发坏境及运行环境·········&#

11、183;····································4 2、系统需求分析···········

12、3;··············································4 2.1 绘图板的功能分析·&#

13、183;·················································&#

14、183;·········4 2.2 用户界面需求和界面分析·····································

15、83;·················43、Windows绘图板软件概要设计·····························&#

16、183;·············63.1 设计准备···································

17、;··································6 3.2 Windows绘图板软件总体设计思想············

18、;····································7 3.3总体设计流程图············

19、;··················································

20、;··84、Windows绘图板软件详细设计············································94.1

21、各功能实现·················································&

22、#183;··················94.2绘制基本图形·····························

23、83;····································94.3设置工具属性············

24、;··················································

25、;····94.4编辑颜色············································

26、83;·························105、程序测试·······················&

27、#183;······································115.1主界面··········

28、;··················································

29、;············115.2文件菜单界面····································

30、······························115.3 Edit菜单界面·················

31、3;················································135.4 Help

32、界面·················································

33、3;····················13三、课程设计总结或结论···························

34、83;···························14四、参考文献·····················&

35、#183;···········································14绪论计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分

36、低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。既然计算机有这么多优点。所以我就梦想着能用我的双手和智慧让计算机能听我的使唤,计算机我认为最成熟的程序就是Windows了。所以我就模仿Windows的画图板,自己做了一个画图板。也有一部分成分是为了完成学校的课题任务,但我也是很愉快的作了这个课题。用java做Windows 的画图板确实有一些难做。因为有很多编程语言都有比java好的多的界

37、面设计功能。如:VB,C#等。他们都是微软公司设计的语言有很好的界面设计功能。并且C# 也有java所拥有的类库功能。我在这并不是说java不好,只是说明java在做界面程序时。并不占优势。特别是做Windows 的软件。摘要:Windows画图板系统的开发最主要包括前端应用程序的开发。对前端应用程序的开发要求应用程序功能完备,易使用,界面美观等特点。Windows画图板系统主要实现文件的新建,保存,颜色的编辑,在坐标系中画直线、矩形、椭圆、圆形、三角等。图形界面各个按钮如“橡皮”、“铅笔”、“刷子”、“A”、“直线”等的实现。该系统还能调整画笔的大小,橡皮的大小,颜色是否填充,编辑各种颜色的

38、实现。我们采用Java语言设计编程该系统。关键词:Windows绘图板 Java、一、 课程设计的目的与要求目的:采用面向对象编程技术,设计并实现一个功能完善的Windows绘图板程序。通过实际程序的开发,熟练面向对象程序设计方法,掌握桌面程序设计技巧,熟悉.NET或Java开发环境。任务:1. 开发一个功能完善的Windows绘图板程序,功能包括:新建空白文档、文件保存、绘制一些基本的图形组件(直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等)、橡皮擦、添加文字等;2. 完成软件开发文档编写;3. 给出程序运行、测试的详细结果。4. 进一步加强和提高软件工程文档的编

39、写能力;5. 培养协作能力和团队精神。二、设计正文1.概述1.1课题题目:Windows绘图板的设计与实现1.2系统的主要目标:本系统目标是实现Windows绘图板软件功能概述 (1)新建空白文档; (2)文件保存; (3)绘制一些基本的图形组件(直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等)、橡皮擦、添加文字等;1.3 系统的开发环境及运行环境:操作系统: Windows XP Pro SP2建模工具: Rational Rose 2003数据库系统:SQL Server2005开发工具: Visual Studio 2005 Eclipse 3.0Web服务器

40、:IIS+ASP.NET 2.0平台2.系统需求分析2.1绘图板的功能分析: 该系统所要实现的功能如下: (1)“橡皮”的功能:用来画出的图形。 (2)“铅笔”的功能:用来画出的任意直线。(3)“直线”的功能:用来让用户更好的画出的直线。(4)“字体”的功能:用来让用户写出自己的字体。(5)“多边形”的功能:用来让用户更好的画出的多边形。(6)“椭圆”的功能:用来让用户更好的画出的椭圆。(7)“圆角矩形”、“矩形”、“选择颜色”等功能:用来让用户更好的实用该绘图板功能。2.2用户界面需求和性能分析:Windows绘图板主要是为用户提供基本画图工具。所以以提供用户最需要的功能为目的。设计性能如下

41、: 让用户不管怎样操作都能得到用户的目的,争取做到傻瓜都能使用该软件。 较windows绘图板增加了生成函数图象的功能,能实现绘制一些基本的图形组件(直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等)、橡皮擦、添加文字等。 其他的实现了windows绘图板的大部分功能:铅笔、橡皮、刷子、直线、选择颜色等等功能。用例图用例图说明:(1)系统的外部角色有:paintings。(2)系统主要用例的文档描述:painting可见的功能,包含了pencil、word、circle、fillcircle、painting、rubber、filloval、filloval、fill

42、rect、oval、line、reck。类图类图说明:1.工具接口Tool:从图中可以看到,工具接口Tool 定义了鼠标动作的四个方法,分别是拖动mouseDrapped()、移动mouseMoved()、松开mouseReleased()、按下mousePressed()、点击mouseClicked()五个动作,并用String 类型的常量属性来定义工具的类型。这个接口只有一个实现类AbstractTool,而每个工具类都是去扩展AbstractTool 类,在图中表现为Tool1、Tool2.ToolN。2.Tool的实现类AbstractToolAbstractTool 是Tool 的

43、实现类,也是一个抽像类,所以并不能被创建,只能被继承。此类实现Tool中定义的所有方法,并扩展了其它方法,让其子类继承或者重写。该类中为其他的工具类提供了大部分的实现,那么它的子类就可以不必再做重复的实现,只关心与本类相关的逻辑,3.AbstractTool的子类AbstractTool 一共有ArrowTool(箭头)、PencilTool(铅笔)、BrushTool(刷子)、EraserTool(橡皮擦)、LineTool (直线)、RectTool (矩形)、PolygonTool (多边形)、RoundTool (椭圆形)、RoundRectTool(圆矩形)、AtomizerTool

44、(喷墨)、ColorPickedTool(颜色选择)11 个子类,4. 界面类ImageFrame这个画图工具的界面的主要放在这个类中实现5. 业务逻辑类ImageService除鼠标的画图功能外(画图功能由Tool 的实现类完成),初始化画板、图片的新建打开与保存、各种面板的显示与隐藏、颜色的编辑、整个界面的刷新、菜单等业务逻辑都放在这个类中实现,对象,它并没有保存一些状态属性。6 .文件选择类ImageFileChooserImageFileChooser 类继承了JFleChooser 类,JFleChooser 是Java 提供的一个简单的文件选择机制,我们这里扩展这个类,是为了增加我

45、们自己的文件过滤器。3.Windows绘图板软件概要设计3.1 设计准备(1)此程序为实现这些功能模块,必须首先定义一个工具面板,将这些画笔、画箭头、椭圆、圆、多边形直线、画矩形、画笔颜色、画笔大小、橡皮等功能组件放入这个工具面板中。(2)此程序为实现利用鼠标做画笔的功能,必会产生鼠标事件MouseEvent。因此,为实现鼠标画图的功能,必须用到鼠标触发事件,故在此程序中,必须实现“委托事件模型”,用到事件源、事件对象以及监听者对象。(3)此程序中,必须用到的包如下:import java.awt.*;import java.awt.geom.*;import java.awt.event.*

46、;import javax.swing.*;import java.io.*;import java.util.*;(4)需用到的类l class DrawPad 这个类是主类,是程序得以运行的入口。在这个主类中定义了主方法,是该程序执行的入口。l class SimpleDrawPad 此类用于实现这个程序的大部分功能,在这个类中除了定义一些基本变量以及构造函数外,还定义了很多成员方法,这些成员方法将实现鼠标触发事件的一系列绘图功能。l class ButtonDealer(SimpleDrawPad内部类)按钮侦听器ButtonDealer类,内部类,用来侦听基本按钮的操作。l class

47、 ButtonDealer1(SimpleDrawPad内部类) 按钮侦听器ButtonDealer1类,用来侦听颜色选择、画笔粗细设置、文字输入按钮的操作。l class mouseA(SimpleDrawPad内部类) 鼠标事件mouseA类,继承了MouseAdapter,用来完成鼠标相应事件操作。l class mouseB(SimpleDrawPad内部类) 鼠标事件mouseB类继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动时的相应操作。l class checkBoxHandler(SimpleDrawPad内部类) 选择字体风格时候用到的事件侦听器类,加

48、入到字体风格的选择框中l class DrawPanel(SimpleDrawPad内部类) 画图面板类,用来画图。l class drawings 定义画图的基本图形单元。l class Line 继承class drawings 实现画直线功能。l class Rect 继承class drawings 实现画矩形功能。l class fillRect 继承class drawings 实现画实心矩形功能。l class Oval 继承class drawings 实现画椭圆功能。l class fillOval 继承class drawings 实现画实心椭圆功能。l class Cir

49、cle 继承 class drawings 实现画圆功能。l class fillCircle 继承 class drawings 实现画实心圆功能。l class Pencil 继承 class drawings 实现自定义绘画功能。l class Rubber 继承 class drawings 实现清除图案功能。l class word 继承 class drawings 实现输入文字功能。3.2Windows绘图板软件总体设计思想主窗体的设计:主类(painter)用来生成主界面,完成画图板的主要框架。主类由JFrame派生出来。主界面由菜单栏、工具栏和画图区域三部分组成,布局格式采用

50、BorderLayout布局形式。l 菜单栏的设计。菜单栏包括文件菜单栏、颜色菜单栏、线条粗细菜单栏和提示菜单栏。其中文件菜单栏包括文件的新建、打开、保存等选项;颜色菜单栏可以进行颜色选择;线条粗细菜单栏设置线条的粗细;提示菜单栏给出提示信息。工具栏由新建、打开和保存文件按钮、基本图形的按钮、选择字体风格复选框和字体下拉列表框组成。主类中添加并对菜单栏和工具栏添加事件监听。l 事件响应的处理。对菜单栏、工具栏和用鼠标画图的事件响应进行处理。菜单栏中文件的新建、打开和保存菜单事件的处理:Java把每个文件都视作顺序字节流。如果要在Java中进行文件处理,则必须用到Java.io包。这个包定义了一

51、些流类,选用FileInputStream(从文件中读入数据)和FIleOutputStream(向文件输出数据),通过建立这些文件的对象便可以打开文件。这些流相应地从InputStream和OutputStream派生,这些文件均使用文件流,所以必须将文件结构化以适应程序的要求。我们需要对保存的对象序列化,然后以输出流的方式保存。在程序中用newFile()、loadFile()和saveFile()三个函数分别实现文件的新建、打开和保存。l 工具栏事件的处理:主要有一些Button组成。我们用ButtonHandler内部类处理基本单元事件,ButtonHandler1内部类处理新建、打开

52、和保存文件按钮,在画图类DrawPanel中定义CreateNewItem()函数处理工具栏中的画图事件。l 鼠标画图:由于画图板主要是用来画图,所以需要在程序中添加对鼠标按下、拖动、进入、退出、移动和单机事件进行监听并进行处理。内部类mouseA定义了完成鼠标按下、松开、进入、退出事件响应。内部类mouseB完成鼠标拖动和移动事件响应。l 画图的基本功能。在程序设计中用到了动态绑定,我们可以提取他们的公共属性,先建立一个父类,然后建立各个子类,继承父类中的方法并将父类中的draw函数重写。一些关于图形形状的类,最主要是用于画图、字体和橡皮擦等基本类型。如Circle、Triangle、Rec

53、tangle,它们都是有超类(Object类)派生的。在面向对象编程中,每个类都有画出自己的能力,每个类都有自己的draw函数,但每种形状的draw函数都不一样,但在绘制任何形状时,只需简单调用父类drawing的draw方法,然后让程序动态地根据对象的类型决定使用哪个子类的draw方法。为了使画出的图形更加美观,我们在draw函数中使用了Graphics2D的对象的引用。这样可以在不改变原程序的情况下,添加扩展的图形,是程序变得更加强大。同时,为了文件的保存,父类实现Serialize接口,将对象线性化。3.3总体设计流程图4、Windows绘图板软件详细设计4.1 各功能实现(1)一组基本图形按钮,包括:Pencil(随笔画)、Line(直线)、Rect(矩形)、FRect(实心矩形)、Ov(椭圆)、FOval(实心椭圆)、Circle(圆)、FCircle(实心圆)、RoundRect(圆角矩形)、FrRect(实心圆角矩形)、Rubber(橡皮擦)、Word(文字)。这些基本图形都继承于同一个父

温馨提示

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

评论

0/150

提交评论