java画笔覆盖在界面_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的绘图有没有清楚一些了呢?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值