熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JSP調用JavaBean在網頁動態生成柱狀圖

2013-11-23 19:03:45  來源: Java核心技術 

  我們經常要在網頁看到一些動態更新的圖片最常見的莫過於股票的K線圖本文試圖通過一個簡單的實例向大家展示如何通過JSP 調用JavaBean在網頁上動態生成柱狀圖
  
  背景本人最近在為某統計局開發項目時涉及到在網頁上動態生成圖片的問題費了一天的時間終於搞定為幫助大家在以後遇到同樣的問題時不走彎路現將設計思想及源代碼公布出來與大家共勉以下代碼在Windows成功測試通過Web應用服務器采用Allaire公司的Jrun
  
  第一步創建一個Java Bean用來生成jpg文件
  
  源程序如下
  
  //生成圖片的 Java Bean
  //作者:崔冠宇
  //日期:
  import javaio*;
  import javautil*;
  import decjpeg*;
  import javaawtimage*;
  import javaawt*;
  
  public class ChartGraphics {
  BufferedImage image;
  public void createImage(String fileLocation) {
  try {
  FileOutputStream fos = new FileOutputStream(fileLocation);
  BufferedOutputStream bos = new BufferedOutputStream(fos);
  JPEGImageEncoder encoder = JPEGCodeccreateJPEGEncoder(bos);
  encoderencode(image);
  bosclose();
  } catch(Exception e) {
  Systemoutprintln(e);
  }
  }
  
  public void graphicsGeneration(int hint hint hint hint h) {
  
  final int X=;
  int imageWidth = ;//圖片的寬度
  int imageHeight = ;//圖片的高度
  int columnWidth=;//柱的寬度
  int columnHeight=;//柱的最大高度
  
  ChartGraphics chartGraphics = new ChartGraphics();
  chartGraphicsimage = new BufferedImage(imageWidth imageHeight BufferedImageTYPE_INT_RGB);
  Graphics graphics = chartGraphicsimagegetGraphics();
  graphicssetColor(Colorwhite);
  graphicsfillRect(imageWidthimageHeight);
  graphicssetColor(Colorred);
  graphicsdrawRect(X+*columnWidth columnHeighth columnWidth h);
  graphicsdrawRect(X+*columnWidth columnHeighth columnWidth h);
  graphicsdrawRect(X+*columnWidth columnHeighth columnWidth h);
  graphicsdrawRect(X+*columnWidth columnHeighth columnWidth h);
  graphicsdrawRect(X+*columnWidth columnHeighth columnWidth h);
  chartGraphicscreateImage(D:\temp\chartjpg);
  }
  }
  
  解釋createImage(String fileLocation)方法用於創建JPG圖片參數fileLocation為文件路徑
  
  graphicsGeneration(int hint hint hint hint h)方法用於繪出圖片的內容參數h……h為每一個長方形的高度
  
  第二步創建另一個Java Bean從文本文件中讀取數據(每一個長方形的高度)在實際應用中數據存儲在Oracle數據庫中
  
  源程序如下:
  
  //讀取Text文件中數據的 Java Bean
  //作者:崔冠宇
  //日期:
  import javaio*;
  public class GetData {
  int heightArray[] = new int[];
  public int[] getHightArray() {
  try {
  RandomAccessFile randomAccessFile = new RandomAccessFile   (d:\temp\ColumnHeightArraytxtr);
  for (int i=;i<;i++)
  {
  heightArray[i] = IntegerparseInt(randomAccessFilereadLine());
  }
  }
  catch(Exception e) {
  Systemoutprintln(e);
  }
  return heightArray;
  }
  }
  
  解釋 getHightArray()用於從文本中讀取數據將文本中的String類型轉換為int類型並以數組類型返回
  
  第三步創建JSP文件
  
  源程序如下
  
  <%@ page import=ChartGraphics %>
  <%@ page import=GetData %>
  <jsp:useBean id=cg class=ChartGraphics/>
  <jsp:useBean id=gd class=GetData/>
  <%!
  int height[]=new int[];
  %>
  <%
  height=gdgetHightArray();
  cggraphicsGeneration(height[]height[]height[]height[]height[]);
  %>
  <html>
  <body>
  <img src=d: empchartjpg></img>
  </body>
  </html>
  
  解釋:JSP首先調用Bean (GetDataclass)讀取文件中的數據再調用Bean(ChartGraphicsclass)生成圖片最後顯示圖片
  
  結束語由於文本(ColumnHeightArraytxt)中的數據可以隨時變化因此生成的圖片中的個長方形的高度是隨之變化的從而實現了圖片的動態生成該設計思想還可以用於制作網站的投票系統
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26207.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.