1. 画板UI设计(总体布局)
(1)创建窗体并设置相关属性;
(2)给整个窗体添加一个中间容器用来覆盖整个窗体;
(3)设置边框布局,因为整个画板大致为左边部分,中间部分,菜单栏三个部分,用边框布局比较合适;
(4)给窗体添加左面板,中间面板;
(5)给左面板添加按钮,并设置按钮图片和效果;
(6)给左面板添加左子面板,用来存放颜色按钮;
2.画板功能设计
(1)给左画板中的按钮组中的每个按钮添加鼠标监听器;
(2)点击不同按钮,绘制不同的图形;
(3)给左子面板中的每个颜色按钮添加鼠标监听器;
(4)根据下面板中选中的颜色按钮,来获取按钮的背景颜色,并将该颜色设置成画笔的颜色;
(5)铅笔功能
1、铅笔是鼠标拖动时画的线,所需要实现鼠标移动监听器,我们采用一个类来实现多个接口;
2、添加新的鼠标监听器类;
3、在鼠标移动时间中实现画笔的逻辑(其实就是绘制直线,鼠标每移动一个像素,就会触发移动事件,通过移动事件获取鼠标的坐标,与上一次移动的坐标连线就可以了;
(6)刷子功能
刷子其实就是加粗的画笔,画出来的直线更粗,这里需要用到Graphic2D画笔来设置画笔的粗细。
(7)橡皮擦功能
橡皮擦就是把画笔颜色设置成相同的背景颜色就可以了,拖动鼠标时进行擦除,所以在鼠标拖动事件中编写。
(8)喷桶功能
1、定位方法:鼠标拖动事件实现;
2、随机数生成:Random;
3、实现原理,在鼠标拖动附近绘制很多的原点;
3. 画板的保存和重绘的设计
(1)给我们的画板添加菜单条、菜单以及菜单项
(2)给每个菜单项添加监听器
(3)点击不同的菜单项实现相应的功能
(4)图形保存功能:利用对象输出流,将容器对象写入文件;
(5)打开图形功能:利用对象输入流,将容器对象读入,然后将容器里面的图形对象在画板上绘制出来
(6)新建文件功能:新建文件,将画板上绘制的内容清空(清空之前可以确认是否需要进行保存)清屏(重绘)功能依次方法;
(7)文件保存格式为BMP格式;
(8)文字功能:读取文本框中的文本并打印到屏幕鼠标的相应的响应位置,传入输入的文字大小的参数,以此来改变文字的大小;
4.弹泡泡功能的设计
根据Java多线程来实现弹泡泡功能;泡泡的位置颜色随机出现,并且做到碰到边框会变色;
1