初识java以来,这应该算是第一个比较成功的作品,尽管对于别人来说还算是非常烂的一个程序,而对于我自己来看,这却是一个突破,画图板让我了解了java的事件机制,别的不多说,先附上一张主界面图(比较粗糙,不要见怪O(∩_∩)O~~)
1、作品简析
具体功能如图所示,可以实现画直线和矩形等的图形,同时也可以通过选择颜色来控制画笔的颜色。这些图形的构造机制虽然都是仿win7画图板的功能,不过真的比起win7来还差的不止好几个档次~~~~
这个画图板有个致命的缺点,就是没有橡皮差,由于时间赶得紧,我也没有去添加,所以经常导致一次运行下来,画布上画满了各种各样的图形,囧。。。其次还有一些不足之处,例如:当我添加了圆和椭圆的单选按钮后才发现两者的实现机制是一样的,为了偷懒我也就没有去掉,并且将圆的e.drawOval完全复制给了椭圆;当我完成这个画图板后测试功能时有时候会被突然出现的窗口将图形“抹掉”
画成功的图:
然后调用颜色选择器:
但是调用完后。。。。
被覆盖的部分就被抹掉了,⊙﹏⊙b汗。。。这事情我也问过龙哥,龙哥说这可能是由于win7的系统机制,在xp下是不会出现的,难道win7的java还有漏洞么。。。。。
2、编写经验
这个画图板编好的那天,其实我并没有打算能够成功编写他,那天上午龙哥还只是刚开始和我讲画图板的内容,而我也只是头天晚上自己看了看,不过龙哥和我上完课后给我布置了一些任务,首先是实现win7画板中画图形鼠标左键点击后移动,图形能够跟着鼠标动的功能,这就得用到java.awt.event.MouseMotionListener里的MouseDragged方法,但是当我千辛万苦实现了这个方法后却发现MouseDragged方法的调用有时间间隔,而上一次时间间隔所画出的图却没有办法消除掉,于是这次尝试以失败而告终。。。。。。
接着我自己慢慢尝试这单选框的监听器,结果发现我所设置的单选框依然可以多选,经过龙哥教导后我发现应该新建一个javax.swing.JButtonGroup的对象并将单选框的对象添加至这个Group里面,趁着这次机会,龙哥便对我说让我自己试试至少五个图形,于是我便开始了我的画板之旅,直线和圆的画线比较容易实现,只需要几个int变量,而三角形的实现就相对麻烦一些,需要建造数组,不过了解了其中的参数意思之后也就好办了。。。。
还有一点就是画布的实现,java.awt.Graphics g;但是我老是忘了给g赋值"g = this.getGraphics();" 所以老是抛出空指针异常,因为这点我还老是被龙哥说呢~~~~~
总之简单的就是这些了,由于作品尚未完善,故不上传了,希望在以后的学习中能够更加的完善我的画图板(╯▽╰)