http://sys.lfwa.com:8080/saleline.jsp

解决方案 »

  1.   

    这个非常好!//读取Text文件中数据的 Java Bean (也可能从数据库中读取)
    //作者: 
    //日期:
    package com.Graphic.haha;import java.io.*;public class GetData
    {
    public int heightArray[] = new int[5];
    public int[] getHightArray(String path)
    {
    try{ 
    RandomAccessFile randomAccessFile = new RandomAccessFile(path+"/temp/ColumnHeightArray.txt","r");
    for(int i=0;i<5;i++)
    {
    heightArray[i] = Integer.parseInt(randomAccessFile.readLine());
    }
    }catch(Exception e)
    {System.out.println(e.toString());}
    return heightArray;
    }
    }  //生成图片的 Java Bean 
    //作者:
    //日期:package com.Graphic.haha;import java.io.*; 
    import java.util.*; 
    import com.sun.image.codec.jpeg.*; 
    import java.awt.image.*; 
    import java.awt.*; 
    import javax.servlet.*;
    import javax.servlet.http.*;public class ChartGraphics  extends HttpServlet
    {
    BufferedImage image;
    ServletConfig config; public void createImage(String fileLocation){
    try{
    FileOutputStream fos = new FileOutputStream(fileLocation);
    BufferedOutputStream bos = new BufferedOutputStream(fos);
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
    encoder.encode(image);
    bos.close();
    }catch(Exception e)
    {System.out.println(e);}
    }
    public void graphicsGeneration(int h1,int h2,int h3,int h4,int h5,String path)
    {
    final int X=10;
    int imageWidth = 300;//图片的宽度
    int imageHeight = 300;//图片的高度
    int columnWidth=30;//柱的宽度
    int columnHeight=200;//柱的最大高度
    ChartGraphics chartGraphics = new ChartGraphics();
    chartGraphics.image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
    Graphics graphics = chartGraphics.image.getGraphics();
    graphics.setColor(Color.white);
    graphics.fillRect(0,0,imageWidth,imageHeight);
    graphics.setColor(Color.red);
    graphics.drawRect(X+1*columnWidth, columnHeight-h1, columnWidth, h1);
    graphics.drawRect(X+2*columnWidth, columnHeight-h2, columnWidth, h2);
    graphics.drawRect(X+3*columnWidth, columnHeight-h3, columnWidth, h3);
    graphics.drawRect(X+4*columnWidth, columnHeight-h4, columnWidth, h4);
    graphics.drawRect(X+5*columnWidth, columnHeight-h5, columnWidth, h5);
    chartGraphics.createImage(path+"/temp/chart.jpg");
    }} 
    //调用的jsp文件
    //作者: 
    //日期:<jsp:useBean id="cg" class="com.Graphic.haha.ChartGraphics"/>
    <jsp:useBean id="gd" class="com.Graphic.haha.GetData"/>
    <%!
    int height[]=new int[5];
    %>
    //取得了所在当前目录的路径
    String Pathstr=getServletContext().getRealPath("");
    //out.println(Pathstr);
    height=gd.getHightArray(Pathstr);
    cg.graphicsGeneration(height[0],height[1],height[2],height[3],height[4],Pathstr);
    %> 
    <html> 
    <body> 
    <img src="temp/chart.jpg"></img> 
    </body> 
    </html>
      

  2.   

    我觉得还是用applet比较好点。
      

  3.   

    用jfreechart组件,非常简单方便。
      

  4.   

    实现原理就是在BufferedImage的Graphics中画图,然后使用ImageIO或JPEGImageEncoder进行编码输出