Swing 实现截图小软件 (三)
?
前面两节完成了,截图软件的基本功能:全屏,区域截图功能
?
本节实现:涂鸦 , 画线 , 画圈 和 保存
?
第一步:实现涂鸦功能。
? 涂鸦也就是说:使用鼠标随意的拖动,去绘制随意的线条。那么就只需要在主程序的展示截图的JLabel中添加鼠标拖动监听。在鼠标每个移动点是绘制“一个点”,这样就可以按照鼠标的移动轨迹,来绘制任意的线条了。
?
?按照上面的思路给出代码:SnapShoot.java
可见,在监听鼠标移动时,画点的速度,跟不上鼠标移动的速度。又图想到,如果把上面的散点全部连接起来,则可以构成一条平滑的线了。
?
于是:改变思路,由画点,改为画线。将鼠标移动监听到的每一个点,都首尾连接的画线。
节约篇幅:展示修改的部分代码,在createActon()中
?
?
第二步:实现画线功能。
?? 画线的话,与涂鸦有点不同。 涂鸦是根据鼠标移动实时画线。 而画线功能要求是:从鼠标按下, 到鼠标弹起的两点之间画一条线段。鼠标移动时,只是展示最后效果,并不直接画上去。 鼠标弹起后,才真的画上去。
?
? 同时因为,有了连个功能,我们给个功能开关,是要涂鸦,还是要画线。
?代码片段:createAction() 中
?
完整代码,见附件:SnapShoot1.jar? 源码在 jar 包中。
?
第三步:实现画圈功能。
? 画圈的功能实现与画线就很想了, 只是修改一下,drawLine -- >? drawOval
?
?代码片段:
?完成代码见附件:SnapShoot2.jar? 源码在 jar 包中。
?
第四步: 为了然该小软件有点用处,光截图,涂鸦之类的,只能看不能用。所以现在就加入 保存 功能吧。
?
代码片段:
完成代码见附件:SnapShoot3.jar 源码在 jar 包中
?
最后,界面是丑了点啦。。。
?
想要稍微让界面好看点,可以修改 LookAndFeel 为本地皮肤,修改? main()方法
?
如图:
?
完成代码见附件:SnapShoot.jar? 源码在 jar 包中
?
到此,该小软件还剩下,水印功能。 明天继续。。。O(∩_∩)O~
1 楼 zhou363667565 2011-02-25 呵呵,下载了,有时间看一下。 2 楼 java_xiaoyi 2011-02-25 恩,应该挺有趣的。。。。 3 楼 pywepe 2011-03-08 很久没上javaeye swing,发现有这么多更新,可惜现在工作了,忙,没空研究