丶男儿当自强的gravatar头像
丶男儿当自强 2015-08-06 18:20:50

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组件)。

好了,说了这么多,给大家看看效果如何:

java swing经典绘图板程序,让你再次领略Java swing绘图的魅力java swing经典绘图板程序,让你再次领略Java swing绘图的魅力java swing经典绘图板程序,让你再次领略Java swing绘图的魅力java swing经典绘图板程序,让你再次领略Java swing绘图的魅力

绘制图形可以拖动改变大小,改变位置,我这里只能对当前绘制的图形进行这些操作,没有对图形进行定位获取,嘿嘿,大家看看就好。

OK,东西没多少,感觉也没啥说的了,这里撤销、回退、缩放图片这些功能大家本地运行看看,截图看不明白。

嘿嘿,图形只选了几个常用图形,语言组织的也不太好,大家莫怪,之前的分享中对repaint、paintComponent这两个API详细讲解了一下,这次的分享对画板和画笔这两个理论性的东西讲解了一下,经过这两次,大家对Java的绘图有没有清楚一些了呢?


打赏

文件名:Draw.rar,文件大小:1586.703K 下载
  • /
      • /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
最代码最近下载分享源代码列表最近下载
Wsy2860  LV1 2023年9月6日
xingxing1234  LV10 2023年3月22日
lizhihao0107  LV1 2021年12月28日
Lunaticsky  LV3 2021年11月19日
一个好人520  LV10 2021年9月29日
huangsq  LV1 2021年9月28日
baijie0219  LV6 2021年5月31日
812795769  LV15 2021年4月6日
李晨冰  LV1 2021年3月24日
zxz8023  LV2 2021年1月3日
最代码最近浏览分享源代码列表最近浏览
香菇肉饼汤  LV8 4月11日
晨爽明宇  LV1 3月4日
星空Starry-Sky  LV6 3月1日
1112WHQ  LV7 2023年11月3日
Wsy2860  LV1 2023年9月6日
yangxb2  LV10 2023年7月11日
另类清晨  LV8 2023年5月15日
xingxing1234  LV10 2023年3月22日
buercheng 2023年1月30日
暂无贡献等级
xixiwoaini  LV3 2022年11月30日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友