ie对java的支持不是很好。。你可以调用第三方免费的组件,生成图片在客户端显示,比如:jcharts(http://jcharts.sourceforge.net/).

解决方案 »

  1.   

    我使用applet做的,还没有放到页面里,觉得应该没有问题大家使用的这些组件画出来的如何,给样例看看!
      

  2.   

    好像javascript也可以,不过粗糙了点
      

  3.   

    我自己做的5个项目的柱状图,就不要版权费了,
    你自己调整高度就可以了。package photomart.image;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.image.*;
    import javax.imageio.*;
    import javax.imageio.stream.*;
    import com.sun.image.codec.jpeg.*;
    public class drawvote extends HttpServlet {
      public void doGet(HttpServletRequest request,
      HttpServletResponse response)
             throws ServletException, IOException {
     response.setContentType("image/png");
     PrintWriter out = response.getWriter();
     //
    int width=124, height=124;
    BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    Graphics g = image.getGraphics();
    ////////////////////////////////////////////////////
    //初始化背景
    g.setColor(new Color(248,208,134));
    int pxo[]={0,124,124,0};
    int pyo[]={0,0,124,124};
    g.fillPolygon(pxo,pyo,4);
    //画第一个背景
    g.setColor(new Color(234,235,236));
    int px1_1[]={6,16,16,6};
    int py1_1[]={16,6,6+100,16+100};
    g.fillPolygon(px1_1,py1_1,4);
    //画第二个背景
    int px1_2[]={16,16+100,16+100,16};
    int py1_2[]={6,6,6+100,6+100};
    g.fillPolygon(px1_2,py1_2,4);
    //画第三个背景
    int px1_3[]={16,16+100,6+100,6};
    int py1_3[]={6+100,6+100,16+100,16+100};
    g.fillPolygon(px1_3,py1_3,4);
    //划分隔线
    g.setColor(new Color(175,171,120));
    g.drawLine(16,6,16,6+100);
    g.drawLine(16,6+100,7,15+100);
    g.drawLine(16,6+100,15+100,6+100);
    //画坐标系
    g.drawString("5",17,6+20);
    g.drawString("4",17,6+40);
    g.drawString("3",17,6+60);
    g.drawString("2",17,6+80);
    g.drawString("1",17,6+100); g.drawLine(16,6+21,16+5,6+21);
    g.drawLine(16,6+21,16-4,6+21+4); g.drawLine(16,6+21+20,16+5,6+21+20);
    g.drawLine(16,6+21+20,16-4,6+21+4+20); g.drawLine(16,6+21+40,16+5,6+21+40);
    g.drawLine(16,6+21+40,16-4,6+21+4+40); g.drawLine(16,6+21+60,16+5,6+21+60);
    g.drawLine(16,6+21+60,16-4,6+21+4+60);
    //画直方图
      {
    //1
    //1.1
    g.setColor(new Color(132,215,236));
    int dya=72;
    int bx=26,by=111;
    int zax[]={bx,bx,bx+10,bx+10};
    int zay[]={by,by-dya,by-dya,by};
    g.fillPolygon(zax,zay,4);
    //1.2
    int zax2[]={bx+10,bx+10,bx+10+5,bx+10+5};
    int zay2[]={by,by-dya,by-dya-5,by-5};
    g.fillPolygon(zax2,zay2,4);
    //1.3
    int zax3[]={bx-1,bx+5-1,bx+10+5,bx+10};
    int zay3[]={by-dya,by-dya-5,by-dya-5,by-dya};
    g.setColor(new Color(187,80,252));
    g.fillPolygon(zax3,zay3,4);
    g.setColor(new Color(132,215,236));
      }   {
    //2
    //2.1
    int dya=45;
    int bx=43,by=111;
    int zax[]={bx,bx,bx+10,bx+10};
    int zay[]={by,by-dya,by-dya,by};
    g.fillPolygon(zax,zay,4);
    //2.2
    int zax2[]={bx+10,bx+10,bx+10+5,bx+10+5};
    int zay2[]={by,by-dya,by-dya-5,by-5};
    g.fillPolygon(zax2,zay2,4);
    //2.3
    int zax3[]={bx-1,bx+5-1,bx+10+5,bx+10};
    int zay3[]={by-dya,by-dya-5,by-dya-5,by-dya};
    g.setColor(new Color(187,80,252));
    g.fillPolygon(zax3,zay3,4);
    g.setColor(new Color(132,215,236));
      }   {
    //3
    //3.1
    int dya=50;
    int bx=60,by=111;
    int zax[]={bx,bx,bx+10,bx+10};
    int zay[]={by,by-dya,by-dya,by};
    g.fillPolygon(zax,zay,4);
    //3.2
    int zax2[]={bx+10,bx+10,bx+10+5,bx+10+5};
    int zay2[]={by,by-dya,by-dya-5,by-5};
    g.fillPolygon(zax2,zay2,4);
    //3.3
    int zax3[]={bx-1,bx+5-1,bx+10+5,bx+10};
    int zay3[]={by-dya,by-dya-5,by-dya-5,by-dya};
    g.setColor(new Color(187,80,252));
    g.fillPolygon(zax3,zay3,4);
    g.setColor(new Color(132,215,236));
      }   {
    //4
    //4.1
    int dya=40;
    int bx=77,by=111;
    int zax[]={bx,bx,bx+10,bx+10};
    int zay[]={by,by-dya,by-dya,by};
    g.fillPolygon(zax,zay,4);
    //4.2
    int zax2[]={bx+10,bx+10,bx+10+5,bx+10+5};
    int zay2[]={by,by-dya,by-dya-5,by-5};
    g.fillPolygon(zax2,zay2,4);
    //4.3
    int zax3[]={bx-1,bx+5-1,bx+10+5,bx+10};
    int zay3[]={by-dya,by-dya-5,by-dya-5,by-dya};
    g.setColor(new Color(187,80,252));
    g.fillPolygon(zax3,zay3,4);
    g.setColor(new Color(132,215,236));
      }   {
    //5
    //5.1
    int dya=80;
    int bx=94,by=111;
    int zax[]={bx,bx,bx+10,bx+10};
    int zay[]={by,by-dya,by-dya,by};
    g.fillPolygon(zax,zay,4);
    //5.2
    int zax2[]={bx+10,bx+10,bx+10+5,bx+10+5};
    int zay2[]={by,by-dya,by-dya-5,by-5};
    g.fillPolygon(zax2,zay2,4);
    //5.3
    int zax3[]={bx-1,bx+5-1,bx+10+5,bx+10};
    int zay3[]={by-dya,by-dya-5,by-dya-5,by-dya};
    g.setColor(new Color(187,80,252));
    g.fillPolygon(zax3,zay3,4);
    g.setColor(new Color(132,215,236));
      }
    ////////////////////////////////////////////////////
    g.dispose();
    ServletOutputStream sos = response.getOutputStream();
    ImageIO.write(image,"PNG",sos);
      }
      public void doPost(HttpServletRequest request,
                      HttpServletResponse response)
             throws ServletException, IOException {
                          doGet(request, response);
      }
    }
      

  4.   

    to u22(zhxih):
    做好了servlet以后如何显示?
      

  5.   

    to u22(zhxih):
    你的有一行代码不知什么意思?去掉以后才能编译成功,希望听到你的解答
    PrintWriter out = response.getWriter();