java swing经典绘图板程序,让你再次领略Java swing绘图的魅力
好久没来给大家分享了,嘿嘿,上家公司没有网络,有心无力,最近找了一份新的工作,下周就去入职了,借这个让我高兴的时刻,再次给大家分享一个小demo,帮助大家对Java的绘图技术有更好的了解。
demo功能描述:
设置:1、对每个图形的画笔颜色、大小进行设置
2、对画板背景色进行设置(背景图片加上了缩放功能,拖动缩放和鼠标滚动缩放,为了让大家更好的看到功能,这里对背景图片大小做了设置,避免过大图片失真,缩放到了图片原始大小,就不再让其放大了)
圆形:1、点击此按钮之后,就可以在画板上拖动鼠标绘制圆形
2、绘制完图形之后点击鼠标左键,当前圆形会随着鼠标而移动
3、绘制完图形之后点击鼠标右键,对当前圆形进行个性化设置
三角:1、点击此按钮之后,就可以在画板上拖动鼠标绘制三角形
2、绘制完图形之后点击鼠标左键,当前三角形会随着鼠标而移动
3、绘制完图形之后点击鼠标右键,对当前三角形进行个性化设置
线条:1、点击此按钮之后,就可以在画板上拖动鼠标绘制直线
2、绘制完图形之后点击鼠标右键,对当前直线进行个性化设置
文字:1、点击此按钮之后,就可以在画板上拖动鼠标绘制文字
2、绘制完图形之后点击鼠标左键,当前文字会随着鼠标而移动
3、绘制完图形之后点击鼠标右键,对当前文字进行个性化设置
撤销:按照时间顺序将界面上图形都清除掉,但保留的有副本
回退:按照时间顺序将界面上图形都还原回来,需要依赖撤销时保留的副本
清屏:清除画板上所有图形,此时撤销和回退会失效
生成图片:将画板上绘制的图形,保存到本地文件夹
切换背景:改变背景图片,但是不会对背景色有影响
退出:退出系统
好了,还是先来说一下我的一些理解(其实在之前的分享中提到过一些,我再啰嗦一下)。
Java绘图,需要了解两个概念,画板和画笔。画板,大家简单理解为Jpanel这种组件;画笔,就是Java的Graphics对象。我们在画图的时候,就可以在图形对象里面获取到Graphics这个画笔,然后画圆画方想画什么画什么。绘图的机制就是鼠标动一下就重新绘制,所以会非常频繁的调用绘图API,这样,大家肯定能想到效率不高的问题,所以若是画图板之外的Swing程序,大家在UI方面还是尽量考虑使用图片会好一些。
可能大家对我所说的图形对象不是很了解,没关系,我们来看一个例子:圆形对象(就是画一个圆)
package com.jumao.itms.ui; import java.awt.*; /** * 圆形 * @author SongFei * @date 2015年8月6日 */ public class Oval extends Shape { private static final long serialVersionUID = 1L; public Oval(Color color, float stroke, String type, int x, int y) { super(color, stroke, type, x, y); } public void draw(Graphics2D graphics2d) { // 设置画笔颜色 graphics2d.setColor(color); // 设置画笔粗细 graphics2d.setStroke(new BasicStroke(stroke)); // 进行绘制 graphics2d.drawOval(currentX, currentY, currentD, currentD); } }
大家可以看到,这里面在构造方法里面对一个圆形的坐标进行了设置,真正绘图的时候只需要调用一下draw方法,这个方法需要一个Graphics2D参数,这时候大家似乎理解了吧,对,没错,这个就是画笔,就是画板的Graphics对象(画板是一个Jpanel组件)。
好了,说了这么多,给大家看看效果如何:
绘制图形可以拖动改变大小,改变位置,我这里只能对当前绘制的图形进行这些操作,没有对图形进行定位获取,嘿嘿,大家看看就好。
OK,东西没多少,感觉也没啥说的了,这里撤销、回退、缩放图片这些功能大家本地运行看看,截图看不明白。
嘿嘿,图形只选了几个常用图形,语言组织的也不太好,大家莫怪,之前的分享中对repaint、paintComponent这两个API详细讲解了一下,这次的分享对画板和画笔这两个理论性的东西讲解了一下,经过这两次,大家对Java的绘图有没有清楚一些了呢?
猜你喜欢
- /
- /Draw
- /Draw/.classpath
- /Draw/.project
- /Draw/.settings
- /Draw/.settings/org.eclipse.core.resources.prefs
- /Draw/images
- /Draw/images/back.png
- /Draw/images/cancel.png
- /Draw/images/clear.png
- /Draw/images/config.png
- /Draw/images/exit.png
- /Draw/images/export.png
- /Draw/images/line.png
- /Draw