index.jspD" />
当前位置:文档之家› JfreeChart-连接-数据库-数据显示柱状图

JfreeChart-连接-数据库-数据显示柱状图

JfreeChart-连接-数据库-数据显示柱状图
JfreeChart-连接-数据库-数据显示柱状图

首先编写web.xml:

xmlns="https://www.doczj.com/doc/bd13760720.html,/xml/ns/javaee"

xmlns:xsi="https://www.doczj.com/doc/bd13760720.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.doczj.com/doc/bd13760720.html,/xml/ns/javaee

https://www.doczj.com/doc/bd13760720.html,/xml/ns/javaee/web-app_2_5.xsd">

index.jsp

DisplayChart

org.jfree.chart.servlet.DisplayChart

DisplayChart

/DisplayChart

显示柱状图代码页:index.jsp:

<%@ page contentType="text/html;charset=UTF-8"

import="java.sql.*,xuyan.model.*"%>

<%@ page

import="org.jfree.chart.ChartFactory,org.jfree.chart.JFreeCha rt,org.jfree.chart.plot.PlotOrientation,org.jfree.chart.servlet.Servl

etUtilities,org.jfree.data.category.CategoryDataset,org.jfree.data.ge neral.DatasetUtilities,org.jfree.chart.plot.*,https://www.doczj.com/doc/bd13760720.html,bels. *,org.jfree.chart.renderer.category.BarRenderer3D,java.awt.*,org.jfre e.ui.*,org.jfree.chart.axis.AxisLocation,org.jfree.chart.title.TextTi tle,org.jfree.chart.axis.CategoryAxis,org.jfree.chart.axis.NumberAxis "%>

<%@ page

import="org.jfree.chart.ChartFactory,org.jfree.chart.JFreeCha rt,org.jfree.chart.plot.PlotOrientation,org.jfree.chart.servlet.Servl etUtilities,org.jfree.data.category.DefaultCategoryDataset"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()+ path + "/";

%>

My JSP 'index.jsp' starting page

content="keyword1,keyword2,keyword3">

<%

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

Connection con = null;

Statement st = null;

ResultSet rs = null;

//连接数据库

con = new ConnDB().GetConn();

st = con.createStatement();

rs = st.executeQuery("select * from AnimalNum ");

while (rs.next()) {

dataset.addValue(rs.getInt(3), "北京", rs.getString(2));

dataset.addValue(rs.getInt(5), "上海", rs.getString(4));

dataset.addValue(rs.getInt(7), "天津", rs.getString(6));

}

JFreeChart chart = ChartFactory.createBarChart(

"统计图", "肉类", "销量",

dataset, PlotOrientation.VERTICAL, true, true, false);

//设置字体,不然会中文乱码的

Font font = new Font("宋体", Font.BOLD, 16);

TextTitle title = new TextTitle("肉类销量统计图", font);

chart.setTitle(title);//标题

CategoryPlot plot = chart.getCategoryPlot();

NumberAxis numberaxis = (NumberAxis)

plot.getRangeAxis();

CategoryAxis domainAxis = plot.getDomainAxis();

/*------设置X轴坐标上的文字-----------*/

domainAxis.setTickLabelFont(new

Font("sans-serif", Font.PLAIN, 11));

/*------设置X轴的标题文字------------*/

domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

/*------设置Y轴坐标上的文字-----------*/

numberaxis.setTickLabelFont(new

Font("sans-serif", Font.PLAIN, 12));

/*------设置Y轴的标题文字------------*/

numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));

/*------这句代码解决了底部汉字乱码的问题

-----------*/

chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); //由底部文字才加,不然会出错

// 以上为文字设置

//以下为背景设置

//设置网格背景颜色

plot.setBackgroundPaint(Color.white);

//设置网格竖线颜色

plot.setDomainGridlinePaint(Color.pink);

//设置网格横线颜色

plot.setRangeGridlinePaint(Color.pink);

//显示每个柱的数值,并修改该数值的字体属性

BarRenderer3D renderer = new BarRenderer3D();

renderer

.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

renderer.setBaseItemLabelsVisible(true);

//默认的数字显示在柱子中,通过如下两句可调整数字的显示

//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题

renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(

ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));

renderer.setItemLabelAnchorOffset(10D);

renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

renderer.setItemLabelsVisible(true);

//设置每个地区所包含的平行柱的之间距离

//renderer.setItemMargin(0.3);

plot.setRenderer(renderer);

//设置地区、销量的显示位置

//将下方的“肉类”放到上方

plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);

//将默认放在左边的“销量”放到右方

plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);

//

String filename =

ServletUtilities.saveChartAsPNG(chart, 500, 300,

null, session);

String graphURL = request.getContextPath()

+ "/DisplayChart?filename=" + filename;

%>

usemap="#<%= filename %>">

显示结果:

相关主题
文本预览
相关文档 最新文档