马说讲课视频:关于Java在Web页面上输出统计图的代码实现

来源:百度文库 编辑:高考问答 时间:2024/05/03 05:52:56
以下是我在网上搜到的用Java在Web页面上输出统计图的实现,可是程序是错误的,本人对Java只是略知一二,哪位大虾可以帮着修改正确了,在这先谢过

建立数据表如下:
项 目 指 标
水产养殖 60
工程管理 89
抗旱防汛 100
财务 200
办公室 350
勘测设计 80

为了绘制各种形式的图表,先定义一个Graph 抽象类
import java.sql.*;
import java.awt.*;
abstract class Graph{
int height,width; //绘图区域的高和宽
int maxRow=50,row=0; //可容纳的最大记录数和实有记录数
Color color=new Color(50,50,200); //默认绘图颜色
float scale; //比例尺
String [] name; //项目名缓冲区
float [] value; //指标值缓冲区
public Graph(Dimension d,int maxRows,Color fColor){
height=d.height;
width=d.width;
name=new String[maxRows];
value=new float[maxRows];
color=fColor;
}
public void setResult(ResultSet result){// 把查询结果读入缓冲区
try{
row=0;
while(result.next() &&rowname[row]=result.getString(1);
value[row]=result.getFloat(2);
row++;}
}
catch(Exception ex){
System.out.println(“\n failure!" +ex.getMessage()); }
}// 绘制统计图的抽象方法, 在子类中实现
}
对数据库的查询在applet 主类中用creatResultSet 方法实现:
private static ResultSet creatResultSet
(String dStr,String sqlStr)
/ * 根据给定的数据源和
sql 查询语句读取数据库*/ {......}

在applet 主类的paint() 方法中,调用类GraphPost 的draw 方法,即可实现统计图的输出。为把查询结果保存在GraphPost 的数据缓冲区中供paint() 方法多次使用,需要把一个GraphPost 对象定义为applet 主类的成员。在applet 主类的init() 方法中,对GraphPost 对象初始化,并完成JDBC 驱动程序注册。在applet 主类的start() 方法中,连接数据库,执行查询,并把查询结果存放到GraphPost 对象的数据缓冲区中。这样, 在每次回到包含该applet 的页面时, 都要重新查询数据库, 保证用户阅读到数据库的最新信息。
下面是applet 主类代码:
import java.applet.Applet;
import java.sql. *;
import java.awt. *;
public class WebGraph extends Applet {
GraphPost graphPost;
public void init() {
try{
Color color=new Color(20,20,230);
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");