我的仿XP画板初期
?
写一篇总结,对我而言,远比漂漂亮亮的写出一个程序难。但是没有总结,怎么告诉自己我在进步????????????????????????????????????????????????? 记于终于决定写画板总结前
?
?
?
?我的仿XP画板初期
这个画板还远没有做到我自己想象中的perfect,只是实现了一些非常基础的功能,尚处于更进中。
一、概况
1.1重点分析
界面设置,绘制基本图形的实现,可选颜色的实现
1.2实现功能
?
二、界面详细介绍
2.1 基本图形按钮
?????? 1、基本图形按钮包括:Pencil(随笔画)、Line(直线)、Rect(矩形)、fRect(实心矩形)、Oval(椭圆)、fOval(实心椭圆)、RoundRect(圆角矩形)、fRoundRect(实心圆角矩形)。
???????2、基本图形都继承自同一个父类:Shape。考虑到每种图形的绘制方法不一样,将Shape定义为抽象类,它具有的属性和方法如下:
???????????? int x1, y1, x2, y2;?? ???????? //用来存放相应图形元素的相关坐标
???????????? Color colorDraw、colorFill;? ??? //用来存放图形色彩信息
???????????? public void draw(Graphics g){} ;//绘制图形的方法,由各个基本图形自己重写父类绘制方法来实现。
2.2 菜单及其组成
(这些操作均没有实现,只是在菜单栏中添加了这些选项)
2.3颜色板
2.4 画板重绘
?????? 1、在画图板最小化再恢复后,可以恢复已经绘制了的图形。
????? ?2、在画图区域被拖离屏幕范围后再恢复,可以恢复已经绘制了的图形。
2.5 现在的程序界面图为:
?
?
三、详细设计与实现
3.1基本图形包括:
。
。
。
。
。
????????单击工具栏上相应图形的图标,然后在绘图区域内用鼠标拖动进行绘画即可。
3.2选择颜色
????????1、画笔颜色的改变:直接点击想要使用的颜色后,再到画图区域进行绘画即可
????????2、填充颜色的改变:选中左下方单选按钮,再选择想使用的颜色,再绘制即可
3.3程序结构说明
????????本程序主体文件为一个工程:我的画图板。其中包括的包有:drawBoard、shape、list,分别包含:窗体设计、绘制形状、动态数组三大块内容,每个包中有含有的类如下:
????????drawBoard:
????????Shape(前面已有介绍,此处略去)
????????List:
?
四、关键部分具体实现代码
?
?我的画板入口:
?
?窗体属性的设置?
?窗体属性的设置?窗体属性的设置
?
?
?
??设置绘图区域面板属性
??????? 由于还没有实现此面板的其他功能,所以代码很少
五、此次画板收获中的一点点
?
?
??? 虽然是很小的一个项目,但是真的要把它做好的确是挺难的,我们从开始学这个到做出来一个像样的画板具体花了多少时间有多少,我没有去计算过,至少有一个多星期吧。可是看着自己的成果,再看看人家XP正版的,不禁唏嘘。我们这还是在前人已经实现的基础上做的,用了这么长时间,实现的功能还不及人家的冰山一角,若要我们自己来想出一个新的工具,将它做出来,将它完善,又该花多少时间?我不喜欢为了写一些应付的文字去完成任务,或许大多数人都不喜欢吧,可是很多时候却是迫于各种压力不得不写,不得不胡乱充数。不过,这一片总结不是强迫出来的,而是自己做了许久之后,回头再看自己的劳动成果,蓦地发现自己有话说了。谢谢龙哥没有强制性的要求什么时候必须提交!? 这个画板我会继续更进的,但愿,能做到真正的仿XP!
???? 最后啰嗦一句 ,感谢有这样一个纯技术的博客平台,不过貌似有些不稳定呢!希望一同进步!
?
?
2 楼 heweiding155 2012-02-09 楼上的亮了~