Java 画板设计分析与实现[源码][附图]

一、需求分析:
人们在日常的工作中,需要画一些简单的图保存一些数据,小画板则为人们提供了这种便利。可以让人们绘制并保存一些简单的图形。且其占用空间小,利于传播及保存。
针对于此,设计的画板需要满足画直线、画圆、画方框、铅笔的功能;同时应具备颜色选择功能、橡皮擦功能、文件保存、载入的功能。
二、概要设计:


[img]http://dl.iteye.com/upload/attachment/327664/2f7a771f-e549-378e-b628-a3fcea9ddb2c.bmp[/img]


各个功能通过各自的类来完成。
三、详细设计:
1、在工具栏中共有直线、圆、方框、铅笔、颜色、橡皮这六个功能键。出于使用上的考虑,他们两两不能同时有效,于是将他们放入同一个数组中,互相作用(即一个有效时将其它设为无效)。
2、在实现铅笔及橡皮功能时,将鼠标指针设为相应的图形,增加软件的动态效果。
3、程序使用ArrayList 来存放画过的记录,并跟据它来保存图像,节空间。
四、程序结构
1、程序结构说明:
本程序采用模块化设计方法,各个功能的实现都有具体的方法,在主函数调用相应的方法即可实现程序的要求。程序的整体性很强。
2、重要数据说明:
本程序中定义Shape类,来存放形状数据
具体如下:
//定义一个byte的shap变量,用来表示形状 0表示直线 1表示圆圈 2表示ARC方块3表示橡皮
public byte shap;
//定义一个颜色属性
public int r,b,g;
//定义x1,y1,x2,y2
public int x1,y1,x2,y2;
3、函数清单:、
/**
* 定义一个存文件的方法
* @param path:存取的文件的位置
*/

public void saveFile(String path)
/**
* 定义一个读文件的方法
* @param path:读取的文件的位置
* @return:一个数组,
*/
public java.util.ArrayList<Shape> getFile(String path)
//将ArrayList中存的各个形状画出来
public void reDraw()
//重写paint方法
public void paint(java.awt.Graphics g)
//自定义光标形状
public Cursor createCursor(String ss)
//添加MenuBar的方法
public java.awt.MenuBar creatMenubar()
//添加工具BA的方法
public javax.swing.JToolBar creatJToolBar()
//定义保存文件的方法
public String showFileSelecter2()
//定义显示文件取得的方法
public String showFileSelecter()
//定义显示颜色管理器的方法
public void showColorSelecter()
//显示窗体的方法
public void showUI()
五、调试分析:
1、程序截图:

[img]http://dl.iteye.com/upload/attachment/327659/38ed8ad2-d16a-3ae4-b75d-42bfa68dd88c.bmp[/img]

[img]http://dl.iteye.com/upload/attachment/327661/b49ae1c0-859d-3f76-9594-5fea5296189c.bmp[/img]

2、程序调试
在调试中发现在使用直线、矩形等功能时,随着ArrayList中图形的增多,画面可能会出现闪动的状况,分析后得到这是由于算法及设计上的缺点造成的。
六、总结:
1、程序设计难点:
本程序的难点对图形的保存及SHAPE类型的设定及重绘的方法。
2、程序设计中的不足:
本程序功能上还不够强大,且在绘制过程中会出现画面闪动的BUG。同时,在细节处理上程序还是需要很大的改进。
3、训练体会:
这次训练使我增强对于JFrame应用的了解及撑握了一些基本组件的使用。同时初步对文件操作有一定的了解。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值