java.lang.Object
   ----java.awt.Graphics
   ----java.awt.Graphics2D

由于项目需要,要求对用户流程进行图形化展示:用户对自己的操作通过查看流程图一目了然。于是进行了一下前期的java绘图探索,通过java.awt.Graphics2D对绘制流程图的基本元素进行了编码,并将其展示在了jsp页面上。

首先编写一个servlet,然后在web.xml中对其进行配置,最后将图片展示在jsp页面。

1. 绘图方法:

[java] view plaincopy
  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2. response.setContentType("image/jpeg");//声明文件格式
  3. //绘制宽=480,长=640的图板
  4. int width=480,hight=720;
  5. BufferedImage image = new BufferedImage(width,hight,BufferedImage.TYPE_INT_RGB);
  6. //获取图形上下文,graphics想象成一个画笔
  7. Graphics2D graphics = (Graphics2D)image.getGraphics();
  8. //消除线条锯齿
  9. graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  10. //对指定的矩形区域填充颜色
  11. graphics.setColor(Color.ORANGE);    //GREEN:绿色;  红色:RED;   灰色:GRAY
  12. graphics.fillRect(0, 0, 240, 720);
  13. //对指定的矩形区域填充颜色
  14. graphics.setColor(Color.PINK);
  15. graphics.fillRect(240, 0, 240, 720);
  16. //生成随机数
  17. Random random = new Random();
  18. /*
  19. * 画线 x,y是坐标,定义线段的两个坐标点
  20. */
  21. graphics.setColor(Color.BLACK);
  22. int x=100,y=100,x1=100,y1=y;
  23. graphics.drawLine(x,y,x+x1,y1);
  24. /*
  25. *画出一个折线
  26. */
  27. int[] xPoints = {100,100,250,250};
  28. int[] yPoints = {180,150,150,180};
  29. graphics.drawPolyline(xPoints, yPoints, 4);
  30. /*
  31. * 画出一个闭合多边形(三角形)
  32. */
  33. int[] xPoints1 = {100,100,200};
  34. int[] yPoints1 = {240,320,280};
  35. graphics.drawPolygon(xPoints1, yPoints1, 3);
  36. /*
  37. * 画出一个闭合多边形(菱形)
  38. */
  39. int[] xPoints2 = {240,300,360,300};
  40. int[] yPoints2 = {280,240,280,320};
  41. graphics.drawPolygon(xPoints2, yPoints2, 4);
  42. graphics.setColor(Color.ORANGE);
  43. graphics.fillPolygon(xPoints2, yPoints2, 4);
  44. /*
  45. *绘制一个椭圆形
  46. */
  47. graphics.setColor(Color.GREEN);
  48. int xOval=100,yOval=360;
  49. graphics.drawOval(xOval, yOval, 100, 100);
  50. /*
  51. *绘制一个矩形
  52. */
  53. //graphics.setColor(Color.GRAY);//--设置矩形边框颜色 。GREEN:绿色;  红色:RED;   灰色:GRAY
  54. int xRect=240,yRect=360;
  55. graphics.drawRect(xRect, yRect, 200, 100);
  56. //设置文字颜色
  57. graphics.setColor(new Color( 20+random.nextInt(100),  20+random.nextInt(100),  20+random.nextInt(100) ));
  58. //设置文字内容、位置
  59. graphics.drawString("直线",100+50,100-5);
  60. graphics.drawString("折线", 200, 150-5);
  61. graphics.drawString("空心三角形", 110, 280);
  62. graphics.drawString("实心菱形", 300-20, 280);
  63. graphics.drawString("椭圆形", 100+50, 360+50);
  64. graphics.drawString("矩形", 240+50, 360+50);
  65. //graphics.drawString("错误的背景颜色", 100, 540);
  66. //graphics.setPaintMode();
  67. //graphics.translate(400, 600);
  68. graphics.dispose();//释放此图形的上下文并释放它所使用的所有系统资源
  69. ImageIO.write(image,"JPEG",response.getOutputStream());
  70. PrintWriter out = response.getWriter();
  71. out.flush();
  72. out.close();
  73. //super.doGet(request, response);
  74. }

2. web.xml中配置servlet:

[html] view plaincopy
  1. <servlet>
  2. <servlet-name>graphics1</servlet-name>
  3. <servlet-class>hsy.graphics.test.GraphicsServlet</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>graphics1</servlet-name>
  7. <url-pattern>/servlet/graphics1</url-pattern>
  8. </servlet-mapping>

3. Jsp页面中只需如下一句即可展示图形:

[html] view plaincopy
  1. <span style="white-space:pre">  </span><img id="" style="" src="../servlet/graphics1">

4. 页面图形展示如下:

现在大家可以看看,充分发挥一下想象力,上图中是否包含了 ‘泳道’、‘开始节点’、‘结束节点’、’普通节点‘、‘流转线条’ 、‘描述文字’ 等一系列元素。那么剩下来的事情就是如何去绘制一个完整的流程图了,显然这不是一件简单的事情,但是有了这些基本的元素,再难应该也是可以绘制出来的。童鞋们,结合自己的项目,充分发挥你的想象力去完成流程图的绘制吧!

java.awt.Graphics2D绘制流程图基本元素相关推荐

  1. java绘制流程图基本元素,java绘制图片

    由于项目需要,要求对用户流程进行图形化展示:用户对自己的操作通过查看流程图一目了然.于是进行了一下前期的Java绘图探索,通过java.awt.Graphics2D对绘制流程图的基本元素进行了编码,并 ...

  2. java graphics2d 矩形_使用java.awt.Graphics2D画矩形

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.awt.Graphics; import java.awt.Gra ...

  3. java.awt.Graphics2D 生成图片--个人章的方法

    # java.awt 画矩形踩坑 本来使用Graphics2D的drawRect()方法画图的,但是出现了下边框过粗,不得已 使用了画线的方法,四个边框,单独划线, 这里要注意坐标轴和线的宽度--高度 ...

  4. java Graphics2D绘制文字并居中并解决服务器乱码问题

    此 Graphics2D 类扩展 Graphics 类,以提供对几何形状.坐标转换.颜色管理和文本布局更为复杂的控制.它是用于在 Java(tm) 平台上呈现二维形状.文本和图像的基础类. 一.在图片 ...

  5. java抗锯齿_java.awt.Graphics2D抗锯齿(字体平滑)处理

    由于项目要在图片中动态加入文字,没想到字体有毛边,找了N多文章没找到解决方法,最后用英文关键字在google上找到了,唉,为什么大家对这些都不关心呢? Java 2D - smooth text fo ...

  6. graphics2d 乱码 java_java Graphics2D绘制文字并居中并解决服务器乱码问题

    java Graphics2D绘制文字并居中并解决服务器乱码问题 package com.test.testImage; import java.awt.Color; import java.awt. ...

  7. java拿火柴游戏流程图_Java拿火柴游戏实训报告

    Java拿火柴游戏实训报告 Java 实训报告程序名:拿火柴游戏姓名: 龙宇 学号: 2010221062 班级: 计应 101 班指导教师: 郑晓东时间: 2011.12.31一. 程序功能介绍火柴 ...

  8. java使用Graphics2D进行图片文字合成示例

    功能介绍:通过Graphics2D在一张背景图上添加文字描述和图片. 合成效果示意图: 代码示例: 在代码中对每步操作做了详细的注释 import java.awt.Color; import jav ...

  9. java basicstroke_使用java.awt.BasicStroke动画化虚线

    使用虚线,线程(或Swing Timer)&将它们与repaint()结合起来,并对破折号的起点和终点进行一些调整 – 然后就可以了. 例 package test; import java. ...

最新文章

  1. 小车自动往返工作原理_自动气象站的工作原理介绍
  2. 编译:ffmpeg,精简ffmpeg.exe
  3. 给你出道题---如何蒙题
  4. IOS UI 第一篇:基本UI
  5. php使用正则表达式标记标题,PHP正则表达式以匹配HTML标记a之外的关键字
  6. java 处理clob_java读取clob字段的几种方法
  7. 成语接龙 | c++ | 建图和BFS
  8. h3csnmp管理命令_华为H3C交换机SNMP配置命令
  9. 用Racket做一个拼图游戏-01
  10. 宇视科技的录像机添加海康的摄像头提示用户名或密码错误
  11. 英语发音规则---G字母
  12. 英文原始文本的读取与处理
  13. 蝴蝶效应、青蛙现象、鳄鱼法则、鲇鱼效应…… 好多新名词 :)
  14. 品牌笔记本主板刷BIOS升级NVME ssd启动系统
  15. 马哥教育开学感想随笔
  16. FileZilla的下载与安装以及简单使用(有图解超简单)
  17. Windows 优质软件
  18. 【靶场补充】项目十二补充(shellshock原理)
  19. 苹果id密码忘记了怎么重新设置?请收好这份攻略!
  20. 2021年安全员-A证(广西省-2021版)考试及安全员-A证(广西省-2021版)考试试卷

热门文章

  1. mysql转oracle注意事项
  2. push的时候 出现卡顿现象
  3. Symbian c++ MCameraObserver类的方法解释
  4. Android 用adb 打印linux内核调试信息dmesg和kmsg命令
  5. Ubuntu12.04下arm交叉编译环境的建立
  6. springboot 打卡功能_实战:如果让你用SpringBoot实现签到奖励的功能,你会怎么做?...
  7. 关于 tsm 磁带槽位
  8. nodejs中的exports和module.exports
  9. opencv+python机读卡识别(四)百度API进行数字识别
  10. 5种处理js跨域问题方法汇总(转载)