一、下载jFreeChart,把jcommon和jfreechart的jar加入到工程中
二、配置xml,加入以下信息
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
三、新建一个工程。在页面上放一个image组件;在页面的backing bean里面添加一个targetURL的String属性
四、把image组件的url属性绑定到tragetURL。
五、在backing bean里面编写生成图形的代码,例如:
private void setChart() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(150, " 北京 ", " 苹果 ");
dataset.addValue(530, " 上海 ", " 苹果 ");
dataset.addValue(160, " 广州 ", " 苹果 ");
dataset.addValue(120, " 北京 ", " 梨子 ");
dataset.addValue(230, " 上海 ", " 梨子 ");
dataset.addValue(360, " 广州 ", " 梨子 ");
dataset.addValue(600, " 北京 ", " 葡萄 ");
dataset.addValue(430, " 上海 ", " 葡萄 ");
dataset.addValue(560, " 广州 ", " 葡萄 ");
dataset.addValue(400, " 北京 ", " 香蕉 ");
dataset.addValue(530, " 上海 ", " 香蕉 ");
dataset.addValue(660, " 广州 ", " 香蕉 ");
dataset.addValue(500, " 北京 ", " 荔枝 ");
dataset.addValue(630, " 上海 ", " 荔枝 ");
dataset.addValue(430, " 广州 ", " 荔枝 ");
JFreeChart chart = ChartFactory.createBarChart3D(" 水果销量图统计-By APPVIEWER ", " 水果种类", " 销量 ", dataset, PlotOrientation.VERTICAL, true, false, false);
chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
// domainAxis.setVerticalCategoryLabels( false );
plot.setDomainAxis(domainAxis);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
// 设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
// 显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
// 设置柱的透明度
plot.setForegroundAlpha(0.8f);
// String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
// String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
HttpSession hs = (HttpSession) getExternalContext().getSession(true);
try {
filename = ServletUtilities.saveChartAsPNG(chart, 640, 480, hs);
//ServletUtilities.
graphURL = getExternalContext().getRequestContextPath() + "/servlet/DisplayChart?filename=" + filename;
} catch (Exception e) {
e.printStackTrace();
}
}
完成!
二、配置xml,加入以下信息
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
三、新建一个工程。在页面上放一个image组件;在页面的backing bean里面添加一个targetURL的String属性
四、把image组件的url属性绑定到tragetURL。
五、在backing bean里面编写生成图形的代码,例如:
private void setChart() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(150, " 北京 ", " 苹果 ");
dataset.addValue(530, " 上海 ", " 苹果 ");
dataset.addValue(160, " 广州 ", " 苹果 ");
dataset.addValue(120, " 北京 ", " 梨子 ");
dataset.addValue(230, " 上海 ", " 梨子 ");
dataset.addValue(360, " 广州 ", " 梨子 ");
dataset.addValue(600, " 北京 ", " 葡萄 ");
dataset.addValue(430, " 上海 ", " 葡萄 ");
dataset.addValue(560, " 广州 ", " 葡萄 ");
dataset.addValue(400, " 北京 ", " 香蕉 ");
dataset.addValue(530, " 上海 ", " 香蕉 ");
dataset.addValue(660, " 广州 ", " 香蕉 ");
dataset.addValue(500, " 北京 ", " 荔枝 ");
dataset.addValue(630, " 上海 ", " 荔枝 ");
dataset.addValue(430, " 广州 ", " 荔枝 ");
JFreeChart chart = ChartFactory.createBarChart3D(" 水果销量图统计-By APPVIEWER ", " 水果种类", " 销量 ", dataset, PlotOrientation.VERTICAL, true, false, false);
chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
// domainAxis.setVerticalCategoryLabels( false );
plot.setDomainAxis(domainAxis);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
// 设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
// 显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
// 设置柱的透明度
plot.setForegroundAlpha(0.8f);
// String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
// String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
HttpSession hs = (HttpSession) getExternalContext().getSession(true);
try {
filename = ServletUtilities.saveChartAsPNG(chart, 640, 480, hs);
//ServletUtilities.
graphURL = getExternalContext().getRequestContextPath() + "/servlet/DisplayChart?filename=" + filename;
} catch (Exception e) {
e.printStackTrace();
}
}
完成!