文档章节

使用Java原生Graphics2D给Activiti流程当前环节加上红色边框。

Eriloan
 Eriloan
发布于 2016/07/25 10:30
字数 259
阅读 7
收藏 0

近期在在项目中用到了Activiti做流程管理,在当前环节中要求画上边框,最出使用的是CSS或JS的方式做的,可是后来发现IMG标签大小变了后,或者弹出页里面的流程图不一致导致边框错位。IE6和IE其它版本中的圆角和兼容性还是有问题,于是我用Java原生Graphics2D的方式画上了边框,并增加了圆角。


现在将原代码公开,方便大家使用。


上个效果图:



代码如下:

/**
	 * 
	 * <br/>Description:给Activiti绘制流程环节矩形框
	 * <p>Author:Eric Shi/史丙利</p>
	 * @param is
	 * @param response
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	public void drawRect(InputStream is,HttpServletResponse response,int x, int y, int width, int height) throws FileNotFoundException,IOException{
		try{
			BufferedImage buffImg = ImageIO.read(is);  

			Graphics2D g2d = buffImg.createGraphics();
			
			g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);  
			
			g2d.setColor(Color.red);
			BasicStroke wideStroke = new BasicStroke(1.5f);
			g2d.setStroke(wideStroke);

			g2d.drawRoundRect(x,y,width,height,22,22);
			ServletOutputStream sos=response.getOutputStream();
			ImageIO.write(buffImg,"jpeg",response.getOutputStream());
			
			sos.close();
			sos.flush();
			
		}catch(FileNotFoundException e){
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
	}



本文转载自:http://blog.csdn.net/eriloan/article/details/8033071

共有 人打赏支持
Eriloan

Eriloan

粉丝 24
博文 30
码字总数 0
作品 2
朝阳
CTO(技术副总裁)
私信 提问
swing Splash Screen

关于登陆之前的那个欢迎屏幕,很多人都是用一个JWindow来使用,其实java本身具备了这样的机制,关于使用JWindow可以看看我那个Frame透明和形状也可以达到一个好的效果。不过JVM提供的比较好,...

Monkey
2011/12/08
0
0
activiti-ScriptTask(脚本任务)

Activiti脚本任务(ScriptTask) Activiti脚本任务(ScriptTask) 作者:邓家海 你一直问为什么到不了远方,请停下数数你的脚步,是不是还没迈开腿 对于没有接触过groovy脚本语言的人来说,可...

方宏春
2018/04/25
0
0
activiti 中的一些信息

activiti 中的service script task 执行脚本任务(java自身脚本不在此列 如需关注看 javaservice) scriptFormat : 1. javascript(JDK 自带的脚步解析特性) 虽然早就知道 但是还未去看过 2. g...

triankg
2015/02/15
0
0
最流行工作流引擎Activiti核心原理和技术

网站网址:http://www.osforce.cn/openclass/137/show Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台。其核心是使用Java开发的快速、稳定的BPMN 2.0流程引擎...

开源力量OL
2015/01/21
6.5K
1
android图像合成与处理

java jre中graphics2d能正确处理与合成图像,移植到android sdk下运行报未预期错。 在OSCHINA上看到android-2.2-froyo/java/awt/Graphics2D.java与Java中的Graphics2D类相似,而且android-2...

linjingl
2011/10/06
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

dockerfile 镜像构建(1)

通用dockerfile 利用已经编译好的.jar 来构建镜像。要构建的目录如下: [root@iZuf61quxhnlk9m2tkx16cZ demo_jar]# docker build -t demo:1 . 运行镜像: [root@iZuf61quxhnlk9m2tkx16cZ de...

Canaan_
13分钟前
0
0
Redis radix tree源码解析

Redis实现了不定长压缩前缀的radix tree,用在集群模式下存储slot对应的的所有key信息。本文将详述在Redis中如何实现radix tree。 核心数据结构 raxNode是radix tree的核心数据结构,其结构体...

阿里云云栖社区
16分钟前
3
0
vue import 传入变量

在做动态添加component的时候,传入变量就会报错,出现以下错误信息: vue-router.esm.js?fe87:1921 Error: Cannot find module '@/components/index'. at eval (eval at ./src/components ......

朝如青丝暮成雪
18分钟前
0
0
Flutter开发 Dio拦截器实现token验证过期的功能

前言: 之前分享过在Android中使用Retrofit实现token失效刷新的处理方案,现在Flutter项目也有“token验证过期”的需求,所以接下来我简单总结一下在Flutter项目中如何实现自动刷新token并重...

EmilyWu
19分钟前
5
0
final Map可以修改内容,final 常量不能修改

1.final Map 可以put元素,但是不可以重新赋值 如: final Map map = new HashMap(); map = new HashMap();//不可以 因为栈中变量map引用地址不能修改 2.final str = “aa”; str = "bb";/......

qimh
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部