最近要用jsp在网页上显示图表曲线,网查来查去居然没有我想要的东西,唉!可能关注这方面应用的人太少了吧。不过有幸让我下载了TeeChart for java,那个叫高兴呀,真象是遇到了十几年没见的老友。但网上相关中文文档、资料太少(都是asp的),没办法,只好用自己”二把刀“的英语水平翻译控件包中自带的资料,搞了许久,终于对其有了初步认识。高兴之余,赶快记录,免得日后忘了。

一、首先下载TeeChart for java控件包
http://www.teechart.net/files/java/public/TeeChartJavaEvaluation.zip

二、开发前的准备(安装)
      将下载的TeeChartJavaEvaluation.zip解压,会看到里面有一个TeeChart.Swing.jar,几个TXT和Docs、Examples两个文件夹,很明显Docs是说明文档,Examples是程序实例。将TeeChart.Swing.jar复制到jsp的工程路径下,由于我使用的iDE是netbeans5.0
      所以需要在工程中”库“包上右键,选择”添加JAR/文件夹“,将TeeChart.Swing.jar包含到jsp默认工程库下。
三、开发(jsp源码如下):

<% 
  ... 
  @page contentType="text/html" 
  %> 
  
 
  <% 
  ... 
  @page pageEncoding="UTF-8" 
  %> 
  
 
  <% 
  ... 
  @page  import="com.steema.teechart.*" 
  %> 
  
 
  <% 
  ... 
  @page  import="com.steema.teechart.editors.*" 
  %> 
  
 
  <% 
  ... 
  @page  import="com.steema.teechart.styles.*" 
  %> 
  
 
  <% 
  ... 
  @page  import="com.steema.teechart.drawing.Color" 
  %> 
  
 
  <!-- 
   以上为TeeChart的单元引用部分,很重要   
  --> 
  
 
  <! 
  DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd" 
  > 
  
 
  < 
  html 
  > 
  
     
  < 
  head 
  > 
  
         
  < 
  meta  
  http-equiv 
  ="Content-Type" 
   content 
  ="text/html; charset=UTF-8" 
  > 
  
         
  < 
  title 
  > 
  JSP Page 
  </ 
  title 
  > 
  
 
  < 
  SCRIPT  
  type 
  ="text/javascript" 
   language 
  ="JavaScript" 
  > 
  ... 
  
        function initChart() ...{   <!-- 记住,这里的chart是靠javascript代码来描绘的 -->
         
          var ll = ch.addSeries(0);    //ch为后面定义的图表变量,此句生成一个曲线(0代表曲线,以此类推)
          ch.getChart().getTitle().setText("qqp_528论坛年度点击量");  //在此处设置图表标题
          ch.getAspect().setView3D(false);  //图表是否三维显示
          ll.add(1,2,"#339999");  //在曲线上追加节点,x=1,y=2,但x轴显示的名称为"#339999"
          
          ll.add(10,20,"#314999");  //同上 描点
          ll.add(15,30,23);
          ll.add(2,13.5,"29.4");
          var tool1 = tChart1.addTool(1);  // 1 = Rotate tool  添加一个工具用于辅助显示图形
        <!--   ch.clear();
          var ba = ch.addSeries(2);
          ba.add(1,2);
          ba.add(10,20);
          ba.add(120,200);          
         ba.fillSampleValues();  //此代码被屏蔽,表示给图表自动追加若干随机生机点 -->          
        }
        function editChart() ...{
          ch.showEditor();  //弹出图表编辑框用于显示
        }
 
  </ 
  SCRIPT 
  > 
          
     
  </ 
  head 
  > 
  
     
  < 
  body   
  onload 
  ="initChart()" 
  > 
      //页面加载即开始描点
 
  < 
  a  
  href 
  ="" 
   _fcksavedurl 
  ="" 
  "" _fcksavedurl 
  ="" 
  "" onmousedown 
  ="editChart()" 
  > 
  Edit Chart... 
  </ 
  a 
  > 
  
     
  < 
  hr 
  > 
  
     
  <% 
  ... 
  
         TChart ch = new TChart();   //jsp代码,实例化一个图表
        // Area aa = new Area(ch.getChart());
         //aa.fillSampleValues(10);
         ch.setBounds(new Rectangle(6, 71, 572, 268));
         //ch.getAspect().setView3D(false);
         ch.getPanel().getGradient().setVisible(true);
         //ch.getHeader().setText("java teechart");
         Line ll = new Line(ch.getChart().chart);
         //ch.addSeries(new Line());
         ll.setStairs(true);
         ll.getLinePen().setColor(Color.BLUE); 
         ch.getSeries(0).add(ll);

         ch.getAxes().getLeft().setStartPosition(0);
         ch.getAxes().getLeft().setEndPosition(200);
         ch.getAxes().getLeft().getAxisPen().color = Color.RED;
         
         ch.getAxes().getLeft().getTitle().getFont().setColor(Color.RED);
         ll.add(2,10,Color.RED);
         ll.add(20,50,Color.RED);
         
         //ch.show();
         //ChartEditor.editChart(ch.getChart());
       /*  ch.addSeries(new Line());

         ch.getAxes().getBottom().setIncrement(1);
         ch.getSeries(0).add(200,"pears", Color.RED);
         ch.getChart().getTitle().setText("在有工fdsa");

         Series se = ch.getSeries(0);
         ch.getSeries(0).add(1.2,4.3);
         ch.getSeries(0).add(20,143);
         se.add(23,56);
         se.clear();  */
         
        // ch.getSeries(0).fillSampleValues();
       
     
  %> 
  
     
  <!-- 
   以下为图表调用到页面,采用java的Applet插件形式  
  --> 
  
     
  < 
  applet
       
  codebase 
  ="." 
  
      archive 
  ="TeeChart.Swing.jar" 
      //加载的插件包,特别注意此处的路径,控件加载失败往往由此造成
      code 
  ="com.steema.teechart.TChartApplet.class" 
    //加载的控件类
      width 
  ="500" 
  
      height 
  ="400" 
  
      name 
  ="ch" 
      //此处即为以上生成的图表实例,注意大小写
      align 
  ="middle" 
  
      vspace 
  ="10" 
  
      hspace 
  ="10" 
  
      alt 
  ="TeeChart for Java applets. qqp_528" 
  
     
  > 
  
     
  </ 
  applet 
  > 
  
     
  </ 
  body 
  > 
  
 
  </ 
  html 
  >

四、补充说明        现在看起来的确简单,但这只是皮毛,teechart当中有几十种样式,几百个属性。这不是一两天就吃透的,具体可以参考以上说的Docs文件夹的说明文档,只是javascript没有代码提示是很烦人的,不过用熟了可能就好一点。