画图板小做

画图板的学习总结
实话说画图板只是实现了一部分简单的功能,还有很多的功能还没实现,界面也是很粗糙的,因此看上去还是很稚嫩,山寨的不行了,都不好意思拿出来看啊。
刚开始学习的时候还是感觉很神奇的,文字能显示出来还是能理解的,但是图画这样的东西能显示出来而且能操作,感觉能这么快达到这样的水平还是很不可思议的。这让我认为我可以很快做出游戏这样的东西了,而现在看来我还是想的太幼稚了,程序这种东西还是需要大量的实践和学习,不能一蹴而就,现在的画图板就还有很多地方不清楚,需要一次两次很多次的反复练习。Java的学习之路还很长,我会更加努力地去奋斗。
接下来说说学习的过程:
1首先用Javax.swing,Jrame()调用一个界面,然后发现没有大小,就是一个空标题栏。然后用setSize()设置界面的大小,用setTitle()设置界面的标题,一个界面就实现了。
[img]http://dl.iteye.com/upload/attachment/0066/2066/e8389db3-4d1b-35de-9aaa-8bf46905473f.jpg[/img]


2接下来呢要画图吧,但是电脑咋知道我们在哪画图呢,这时候我们就要写一个方法让电脑知道我们在界面上做了些啥。创建一个监听器,DrawListener给Jrame,这样我们在界面上做些啥,监听器就知道了。 [img]http://dl.iteye.com/upload/attachment/0066/2068/d0725074-32a8-3843-b5b4-0dedf28ce3d8.jpg[/img]


3有了监听器画图就成了可能了,首先画个简单的图形直线。直线就是由两点决定的,所以只要得到两点就可以了,让监听器继承java.awt.event.MouseListener,然后实现MouseListener里的方法,MousePressed按下的点记下来,MouseReleased松开的点记下来,得到两点的坐标用DrawLine的方法就可以画出直线了。
[img]http://dl.iteye.com/upload/attachment/0066/2070/fdc9692f-e697-321d-8b01-47d40bdad56c.jpg[/img]


4用相同的方法我们还可以画出矩形,椭圆,圆角矩形,都是知道两点就可以画出这些图像。按照这样的逻辑,还可以画出很多固定的图像,比如箭头,直角三角形,平行多边形等等图像。
[img]http://dl.iteye.com/upload/attachment/0066/2072/5d951358-84b5-31ce-9341-977fb442ad79.jpg[/img]


5这么多图像要选择,那么我们要创建一个可以选择图像的东东,而且只可以单选,所以选择单选按钮,用JBotton这个单选按钮来实现这个功能。先用创建一个group对象,将要画的图像加入group中,这样我们就可以任意选择一个要画的图像了。
[img]http://dl.iteye.com/upload/attachment/0066/2074/a50cfbcf-5fd1-317f-b269-b2fd8c00c4de.jpg[/img]


6有了简单的图片还要有好看的颜色。其实这和图片一样的,因为颜色也是只能选择一个的,所以创建一个colorgroup组将颜色放进去,用java.awt.Color调用方法中的颜色。这要就可以画出不同的颜色了。
7这样便可以画简单的图形了,但是界面太唆了,可以先设置一下界面的布局BorderLayout,创建选择工具条JToolButton和JPanel,分别放在界面的上北方和中间。然后变化一下单选按钮的圆圈选中改变成可见的图片,颜色选择按钮也可以改变成为要选的颜色。用javax.swing.ImageIcon循环去添加图片,同样的Jlabel添加背景色去改变颜色选择按钮。
[img]http://dl.iteye.com/upload/attachment/0066/2076/86daf59b-e785-3ab1-bbbc-38df7f2ff0ba.jpg[/img]

8接下来我们发现画过的图像经过移动,最小化就不见了。因为在缓存中的图线没有保存进内存中,所以我们需要重绘图像的方法。重写JPanel的方法,将每一次的图片存起来,然后每次改变画板界面的时候就调用重绘的方法,就可以保存住我们所画的图像。
[img]http://dl.iteye.com/upload/attachment/0066/2078/d09805b9-484c-3ccc-a6e7-278887c5fa89.jpg[/img]


9最后还有铅笔这个东西,这回不用java,awt,event.DrawListener了改用java.awt.event.Adapter,也不用Graphics了改用Graphics2D。这样就可以实现铅笔功能了。
[img]http://dl.iteye.com/upload/attachment/0066/2080/35a9a93f-3c1b-325a-9ad9-a4b6dfb63c92.jpg[/img]

最后我还要说,画图板我还没实现,路还很长,我要长期坚定的去实现这个画图板,最后要实现所有的功能。
[img]http://dl.iteye.com/upload/attachment/0066/2082/fd8d9f1e-1967-3f52-85ea-f27e631f194f.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值