最近要用jsp在网页上显示图表曲线,网查来查去居然没有我想要的东西,唉!可能关注这方面应用的人太少了吧。不过有幸让我下载了TeeChart for java,那个叫高兴呀,真象是遇到了十几年没见的老友。但网上相关中文文档、资料太少(都是asp的),没办法,只好用自己”二把刀“的英语水平翻译控件包中自带的资料,搞了许久,终于对其有了初步认识。高兴之余,赶快记录,免得日后忘了。
一、首先下载TeeChart for java控件包 顺便说一下,本来我是上传到csdn的”我的资源“上了,但不知为什么csdn给我删了,所以只好在以下这个地址下载了(如果还下不了,请到www.steema.com 官方网站注册一下,再下) 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没有代码提示是很烦人的,不过用熟了可能就好一点。