- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Java语言》课程期末作业
题 目第1题:简易绘图程序
学 院 计算机学院
专 业 软件工程
班 别
学 号
姓 名
2015年12月6日
翁佳盛 《
翁佳盛 《Java语言》课程期末作业
PAGE
PAGE # / 352
一、 课程题目
绘图应用程序。利用学过的GUI方法实现一个较为完整的绘图应用程序。 用户可以选择要画的图形(如线,椭圆,圆,矩形,弧,圆角矩形,多边形,折 线等等),选择画笔颜色和画笔粗度,用鼠标单击和拖拽等动作绘图,并能将绘 图结果保存为jpg和bmp格式。
二、 题目分析与设计
开发环境:Eclipse 4.5.0 JDK 180_45
题目需求分析:题目要求实现一个较为完整的绘图程序,最基本的要求 是用户可以自由选择图形,颜色,线条粗细等属性,并用鼠标绘制图形,并将其 保存为图片文件。首先,程序界面参考一般绘图软件,进行组件的布局。另外对 于程序的功能实现,则将图形封装成类,通过多态实现多种不同图形的绘制, 并 用输入输出流保存或打开文件。除此之外根据实际操作的需要,添加一些必要或 者实用的功能,如撤销操作,快捷键撤销或保存,关闭文件前弹窗提示保存等功
.菜单功能:通过菜单栏进行:
一、 文件的读取与写入;
二、 使用扩展功能;
三、 程序的简单偏好设置;
四、 程序信息提示。
.绘图功能:在绘图过程通过工具栏进行形状、颜色等图形选择,在文本 输入及扩展功能状态下会新增子工具栏,在子工具栏中对于字体或其它形状进行 设置。然后在画板区域通过鼠标的点击与拖拽绘制图形。绘图过程应有保存与撤 销功能。绘图范围为画板的显示的区域。
.其它功能:如快捷键Ctrl+z为撤销,Ctrl+s为保存。鼠标停在工具栏按 钮上时提示功能。文件修改后窗口标题带上星号作为标记。第一次编辑的文件或 修改过的文件关闭前自动提示保存。等等。
.功能架构图:
简易绘图
保 存 文 件打 开 文 件文件操作新 建 文 件图 形 绘 制撤 销 擦 除更 多 图 形补充功能
保 存 文 件
打 开 文 件
文件操作
新 建 文 件
图 形 绘 制
撤 销 擦 除
更 多 图 形
补充功能
界面设计:本程序使用Swing图形编程
菜单:类似于常见程序,添加子菜单:,Setting. Help。在File菜单下有 n ew, ope n, save, exit等菜单项。Pai nt下主要是moresh ape调出更多图形选 择,Setting下的background菜单项可更改画板背景颜色。Help下可查看程序及 作者的信息。
主界面:采用默认的BordeLayout布局,添加工具栏于 NORTH区,画板于 CENTER区。打开程序时默认全屏。
工具栏:由于有多个工具栏,所以使用 JTabbedPa nd故出多标签。主工具栏 一直存在,文本工具栏和扩展工具栏每次最多只有一个出现, 若打开时另一个工
具栏已存在,则会先将已存在的工具栏关闭。主工具栏与文本工具栏由于有复选 框这一组件,添加后会自动填满多余空间,所以使用 FlowLayout布局。扩展工
具栏使用默认布局。
主工具栏添加常用图形按钮、图形属性按钮、撤销按钮。文本工具栏添加字
体属性按钮,撤销按钮及退出文本工具栏按钮。扩展工具栏添加多边形按钮及退 出扩展工具栏按钮。每个工具栏的按钮各自存放在一个 ArrayList中。
画板:画板类从JPanel继承,重写paintComponent方法,使得画板每次刷新 时可将之前的所有图形重新画出来。
逻辑实现:
画图部分:程序将一个图形的所有信息封装为一个 Drawings类,而具体的
图形则从Drawings类继承,并实现自己的draw()方法用以画出图形。因此,可 以创建一个Drawings类型的数组,用一个索引对数组进行操作,用户每画一个 图形,就将该图形的所有信息存放到数组中索引指向的位置,索引向后移动一位。 重写后的画板的drawComponent方法就会自动将数组中从0位置到索引位置的 所有图形在画板上绘制出来。而撤销操作只需要将索引向前移动一位并重画即 可。
文件读写:保存文件时,先创建一个 Bufferedlmage对象,然后将画板内容 画到该对象上,并将该对象写入到指定文件中。 打开文件时,则从指定文件中获 得一个BufferedImage对象,将其作为一个从Drawings类继承的图形,在画板上 画出来。
三、测试分析
测试数据:
.新建文件,画图,保存为jpg文件;
.新建文件,画图,保存为bmp文件;
.打开(1)(2)中保存的文件;
.打开一个txt文件,弹窗报错;
测试情况:测试结果与预计结果一致;
Us
荀易魏匿*
File Paint Setting Help
(主工具栏「瘗边醪工具栏L
|回
您可能关注的文档
最近下载
- 营养风险筛查NRS2002.doc VIP
- 《马克思主义基本原理》教案 第2课 世界观与哲学的基本问题、物质与意识.pdf VIP
- 普惠托育服务的服务质量和评价.pptx VIP
- 实验十一活髓切断术.ppt VIP
- 安徽财经大学“一流专业”“一流课程”项目建设任务书.pdf VIP
- 良性前列腺增生诊断治疗指南(中国泌尿外科和男科疾病诊断治疗指南2022版).pdf VIP
- 产品溯源管理制度(商检制度之五).doc VIP
- 企业主体责任十二项安全制度.docx VIP
- 安徽省池州市2024-2025学年九年级物理期末复习卷(三)(沪粤版).pdf VIP
- HJ 377-2019 化学需氧量(CODCr)水质在线自动监测仪技术要求及检测方法.docx VIP
文档评论(0)