java.awt.Graphics2D绘制流程图基本元素
java.lang.Object
----java.awt.Graphics
----java.awt.Graphics2D
由于项目需要,要求对用户流程进行图形化展示:用户对自己的操作通过查看流程图一目了然。于是进行了一下前期的java绘图探索,通过java.awt.Graphics2D对绘制流程图的基本元素进行了编码,并将其展示在了jsp页面上。
首先编写一个servlet,然后在web.xml中对其进行配置,最后将图片展示在jsp页面。
1. 绘图方法:
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- response.setContentType("image/jpeg");//声明文件格式
- //绘制宽=480,长=640的图板
- int width=480,hight=720;
- BufferedImage image = new BufferedImage(width,hight,BufferedImage.TYPE_INT_RGB);
- //获取图形上下文,graphics想象成一个画笔
- Graphics2D graphics = (Graphics2D)image.getGraphics();
- //消除线条锯齿
- graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- //对指定的矩形区域填充颜色
- graphics.setColor(Color.ORANGE); //GREEN:绿色; 红色:RED; 灰色:GRAY
- graphics.fillRect(0, 0, 240, 720);
- //对指定的矩形区域填充颜色
- graphics.setColor(Color.PINK);
- graphics.fillRect(240, 0, 240, 720);
- //生成随机数
- Random random = new Random();
- /*
- * 画线 x,y是坐标,定义线段的两个坐标点
- */
- graphics.setColor(Color.BLACK);
- int x=100,y=100,x1=100,y1=y;
- graphics.drawLine(x,y,x+x1,y1);
- /*
- *画出一个折线
- */
- int[] xPoints = {100,100,250,250};
- int[] yPoints = {180,150,150,180};
- graphics.drawPolyline(xPoints, yPoints, 4);
- /*
- * 画出一个闭合多边形(三角形)
- */
- int[] xPoints1 = {100,100,200};
- int[] yPoints1 = {240,320,280};
- graphics.drawPolygon(xPoints1, yPoints1, 3);
- /*
- * 画出一个闭合多边形(菱形)
- */
- int[] xPoints2 = {240,300,360,300};
- int[] yPoints2 = {280,240,280,320};
- graphics.drawPolygon(xPoints2, yPoints2, 4);
- graphics.setColor(Color.ORANGE);
- graphics.fillPolygon(xPoints2, yPoints2, 4);
- /*
- *绘制一个椭圆形
- */
- graphics.setColor(Color.GREEN);
- int xOval=100,yOval=360;
- graphics.drawOval(xOval, yOval, 100, 100);
- /*
- *绘制一个矩形
- */
- //graphics.setColor(Color.GRAY);//--设置矩形边框颜色 。GREEN:绿色; 红色:RED; 灰色:GRAY
- int xRect=240,yRect=360;
- graphics.drawRect(xRect, yRect, 200, 100);
- //设置文字颜色
- graphics.setColor(new Color( 20+random.nextInt(100), 20+random.nextInt(100), 20+random.nextInt(100) ));
- //设置文字内容、位置
- graphics.drawString("直线",100+50,100-5);
- graphics.drawString("折线", 200, 150-5);
- graphics.drawString("空心三角形", 110, 280);
- graphics.drawString("实心菱形", 300-20, 280);
- graphics.drawString("椭圆形", 100+50, 360+50);
- graphics.drawString("矩形", 240+50, 360+50);
- //graphics.drawString("错误的背景颜色", 100, 540);
- //graphics.setPaintMode();
- //graphics.translate(400, 600);
- graphics.dispose();//释放此图形的上下文并释放它所使用的所有系统资源
- ImageIO.write(image,"JPEG",response.getOutputStream());
- PrintWriter out = response.getWriter();
- out.flush();
- out.close();
- //super.doGet(request, response);
- }
2. web.xml中配置servlet:
- <servlet>
- <servlet-name>graphics1</servlet-name>
- <servlet-class>hsy.graphics.test.GraphicsServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>graphics1</servlet-name>
- <url-pattern>/servlet/graphics1</url-pattern>
- </servlet-mapping>
3. Jsp页面中只需如下一句即可展示图形:
- <span style="white-space:pre"> </span><img id="" style="" src="../servlet/graphics1">
4. 页面图形展示如下:
现在大家可以看看,充分发挥一下想象力,上图中是否包含了 ‘泳道’、‘开始节点’、‘结束节点’、’普通节点‘、‘流转线条’ 、‘描述文字’ 等一系列元素。那么剩下来的事情就是如何去绘制一个完整的流程图了,显然这不是一件简单的事情,但是有了这些基本的元素,再难应该也是可以绘制出来的。童鞋们,结合自己的项目,充分发挥你的想象力去完成流程图的绘制吧!
java.awt.Graphics2D绘制流程图基本元素相关推荐
- java绘制流程图基本元素,java绘制图片
由于项目需要,要求对用户流程进行图形化展示:用户对自己的操作通过查看流程图一目了然.于是进行了一下前期的Java绘图探索,通过java.awt.Graphics2D对绘制流程图的基本元素进行了编码,并 ...
- java graphics2d 矩形_使用java.awt.Graphics2D画矩形
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.awt.Graphics; import java.awt.Gra ...
- java.awt.Graphics2D 生成图片--个人章的方法
# java.awt 画矩形踩坑 本来使用Graphics2D的drawRect()方法画图的,但是出现了下边框过粗,不得已 使用了画线的方法,四个边框,单独划线, 这里要注意坐标轴和线的宽度--高度 ...
- java Graphics2D绘制文字并居中并解决服务器乱码问题
此 Graphics2D 类扩展 Graphics 类,以提供对几何形状.坐标转换.颜色管理和文本布局更为复杂的控制.它是用于在 Java(tm) 平台上呈现二维形状.文本和图像的基础类. 一.在图片 ...
- java抗锯齿_java.awt.Graphics2D抗锯齿(字体平滑)处理
由于项目要在图片中动态加入文字,没想到字体有毛边,找了N多文章没找到解决方法,最后用英文关键字在google上找到了,唉,为什么大家对这些都不关心呢? Java 2D - smooth text fo ...
- graphics2d 乱码 java_java Graphics2D绘制文字并居中并解决服务器乱码问题
java Graphics2D绘制文字并居中并解决服务器乱码问题 package com.test.testImage; import java.awt.Color; import java.awt. ...
- java拿火柴游戏流程图_Java拿火柴游戏实训报告
Java拿火柴游戏实训报告 Java 实训报告程序名:拿火柴游戏姓名: 龙宇 学号: 2010221062 班级: 计应 101 班指导教师: 郑晓东时间: 2011.12.31一. 程序功能介绍火柴 ...
- java使用Graphics2D进行图片文字合成示例
功能介绍:通过Graphics2D在一张背景图上添加文字描述和图片. 合成效果示意图: 代码示例: 在代码中对每步操作做了详细的注释 import java.awt.Color; import jav ...
- java basicstroke_使用java.awt.BasicStroke动画化虚线
使用虚线,线程(或Swing Timer)&将它们与repaint()结合起来,并对破折号的起点和终点进行一些调整 – 然后就可以了. 例 package test; import java. ...
最新文章
- 小车自动往返工作原理_自动气象站的工作原理介绍
- 编译:ffmpeg,精简ffmpeg.exe
- 给你出道题---如何蒙题
- IOS UI 第一篇:基本UI
- php使用正则表达式标记标题,PHP正则表达式以匹配HTML标记a之外的关键字
- java 处理clob_java读取clob字段的几种方法
- 成语接龙 | c++ | 建图和BFS
- h3csnmp管理命令_华为H3C交换机SNMP配置命令
- 用Racket做一个拼图游戏-01
- 宇视科技的录像机添加海康的摄像头提示用户名或密码错误
- 英语发音规则---G字母
- 英文原始文本的读取与处理
- 蝴蝶效应、青蛙现象、鳄鱼法则、鲇鱼效应…… 好多新名词 :)
- 品牌笔记本主板刷BIOS升级NVME ssd启动系统
- 马哥教育开学感想随笔
- FileZilla的下载与安装以及简单使用(有图解超简单)
- Windows 优质软件
- 【靶场补充】项目十二补充(shellshock原理)
- 苹果id密码忘记了怎么重新设置?请收好这份攻略!
- 2021年安全员-A证(广西省-2021版)考试及安全员-A证(广西省-2021版)考试试卷
热门文章
- mysql转oracle注意事项
- push的时候 出现卡顿现象
- Symbian c++ MCameraObserver类的方法解释
- Android 用adb 打印linux内核调试信息dmesg和kmsg命令
- Ubuntu12.04下arm交叉编译环境的建立
- springboot 打卡功能_实战:如果让你用SpringBoot实现签到奖励的功能,你会怎么做?...
- 关于 tsm 磁带槽位
- nodejs中的exports和module.exports
- opencv+python机读卡识别(四)百度API进行数字识别
- 5种处理js跨域问题方法汇总(转载)