Java实现简易画图程序讲述.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java实现简易画图程序讲述

《Java语言》课程期末作业 题 目 第1题:简易绘图程序 学 院 计算机学院 专 业 软件工程 班 别 学 号 姓 名 2015年12月6日 一、课程题目 绘图应用程序。利用学过的GUI 方法实现一个较为完整的绘图应用程序。用户可以选择要画的图形(如线,椭圆,圆,矩形,弧,圆角矩形,多边形,折线等等),选择画笔颜色和画笔粗度,用鼠标单击和拖拽等动作绘图,并能将绘图结果保存为jpg和bmp格式。 二、题目分析与设计 1. 开发环境:Eclipse 4.5.0 JDK 1.8.0_45 2. 题目需求分析:题目要求实现一个较为完整的绘图程序,最基本的要求是用户可以自由选择图形,颜色,线条粗细等属性,并用鼠标绘制图形,并将其保存为图片文件。首先,程序界面参考一般绘图软件,进行组件的布局。另外对于程序的功能实现,则将图形封装成类,通过多态实现多种不同图形的绘制,并用输入输出流保存或打开文件。除此之外根据实际操作的需要,添加一些必要或者实用的功能,如撤销操作,快捷键撤销或保存,关闭文件前弹窗提示保存等功能。 (1). 菜单功能:通过菜单栏进行: 一、 文件的读取与写入; 二、 使用扩展功能; 三、 程序的简单偏好设置; 四、 程序信息提示。 . 绘图功能:在绘图过程通过工具栏进行形状、颜色等图形选择,在文本输入及扩展功能状态下会新增子工具栏,在子工具栏中对于字体或其它形状进行设置。然后在画板区域通过鼠标的点击与拖拽绘制图形。绘图过程应有保存与撤销功能。绘图范围为画板的显示的区域。 (3). 其它功能:如快捷键Ctrl+z为撤销,Ctrl+s为保存。鼠标停在工具栏按钮上时提示功能。文件修改后窗口标题带上星号作为标记。第一次编辑的文件或修改过的文件关闭前自动提示保存。等等。 (4). 功能架构图: 3. 界面设计:本程序使用Swing图形编程。 菜单:类似于常见程序,添加子菜单:File,Paint, Setting, Help。在File菜单下有new,open, save, exit等菜单项。Paint下主要是moreshape调出更多图形选择,Setting下的background菜单项可更改画板背景颜色。Help下可查看程序及作者的信息。 主界面:采用默认的BordeLayout布局,添加工具栏于NORTH区,画板于CENTER区。打开程序时默认全屏。 工具栏:由于有多个工具栏,所以使用JTabbedPane做出多标签。主工具栏一直存在,文本工具栏和扩展工具栏每次最多只有一个出现,若打开时另一个工具栏已存在,则会先将已存在的工具栏关闭。主工具栏与文本工具栏由于有复选框这一组件,添加后会自动填满多余空间,所以使用FlowLayout布局。扩展工具栏使用默认布局。 主工具栏添加常用图形按钮、图形属性按钮、撤销按钮。文本工具栏添加字体属性按钮,撤销按钮及退出文本工具栏按钮。扩展工具栏添加多边形按钮及退出扩展工具栏按钮。每个工具栏的按钮各自存放在一个ArrayList中。 画板:画板类从JPanel继承,重写paintComponent方法,使得画板每次刷新时可将之前的所有图形重新画出来。 4. 逻辑实现: 画图部分:程序将一个图形的所有信息封装为一个Drawings类,而具体的图形则从Drawings类继承,并实现自己的draw()方法用以画出图形。因此,可以创建一个Drawings类型的数组,用一个索引对数组进行操作,用户每画一个图形,就将该图形的所有信息存放到数组中索引指向的位置,索引向后移动一位。重写后的画板的drawComponent方法就会自动将数组中从0位置到索引位置的所有图形在画板上绘制出来。而撤销操作只需要将索引向前移动一位并重画即可。 文件读写:保存文件时,先创建一个BufferedImage对象,然后将画板内容画到该对象上,并将该对象写入到指定文件中。打开文件时,则从指定文件中获得一个BufferedImage对象,将其作为一个从Drawings类继承的图形,在画板上画出来。 三、测试分析 1. 测试数据: (1). 新建文件,画图,保存为jpg文件; (2). 新建文件,画图,保存为bmp文件; (3). 打开(1)(2)中保存的文件; (4). 打开一个txt文件,弹窗报错; 2. 测试情况:测试结果与预计结果一致; 附录:源代码+图标 import java.awt.AWTEvent;

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档