关于jsp页面中动态生成柱状图的问题 在一个jsp页面中,已经从数据库中读出了收入和支出的所有数据,并且已经累加完成计算假设<%int a=100;//总收入int b=50;//总支出%>现在根据a和b的值动态生成一个柱状图对比,求教达人 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.StandardCategorySeriesLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import java.io.*; public class BarChartDemo1 extends ApplicationFrame { public BarChartDemo1(String s) { super(s); JPanel jpanel = createDemoPanel(); jpanel.setPreferredSize(new Dimension(700, 550)); setContentPane(jpanel); } private static CategoryDataset createDataset() { String s = "每日PV"; String s1 = "每日IP数"; String s2 = "注册用户数"; String s3 = "A网站"; String s4 = "B网站"; String s5 = "C网站"; String s6 = "D网站"; String s7 = "E网站"; DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); //A-E网站的 每日PV defaultcategorydataset.addValue(-1.0D, s, s3); defaultcategorydataset.addValue(4D, s, s4); defaultcategorydataset.addValue(3D, s, s5); defaultcategorydataset.addValue(5D, s, s6); defaultcategorydataset.addValue(5D, s, s7); defaultcategorydataset.addValue(5D, s1, s3); defaultcategorydataset.addValue(7D, s1, s4); defaultcategorydataset.addValue(6D, s1, s5); defaultcategorydataset.addValue(8D, s1, s6); defaultcategorydataset.addValue(4D, s1, s7); defaultcategorydataset.addValue(4D, s2, s3); defaultcategorydataset.addValue(3D, s2, s4); defaultcategorydataset.addValue(2D, s2, s5); defaultcategorydataset.addValue(3D, s2, s6); defaultcategorydataset.addValue(6D, s2, s7); return defaultcategorydataset; } private static JFreeChart createChart(CategoryDataset categorydataset) { //名字,横坐标名字,纵坐标名字,图例显示的方式(横着显示,还是竖着), JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo 1", "网站", "数值", categorydataset, PlotOrientation.VERTICAL, true, true, false); CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); //设置背景十字线是否阴影显示 categoryplot.setDomainGridlinesVisible(false); //点的时候有线 categoryplot.setRangeCrosshairVisible(true); categoryplot.setRangeCrosshairPaint(Color.red); //返回数轴 NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); //numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setStandardTickUnits(NumberAxis.createStandardTickUnits()); BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer(); barrenderer.setBaseItemLabelFont(new Font("宋体", Font.ITALIC, 12)); barrenderer.setSeriesItemLabelFont(1, new Font("宋体", Font.ITALIC, 12)); /*增加设置字体的代码*/ CategoryAxis domainAxis = categoryplot.getDomainAxis(); /*------设置X轴坐标上的文字-----------*/ domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 18)); /*------设置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)); /*------这句代码解决了底部汉字乱码的问题-----------*/ jfreechart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); barrenderer.setDrawBarOutline(false); GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, new Color( 0, 0, 64)); GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0)); GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color( 64, 0, 0)); barrenderer.setSeriesPaint(0, gradientpaint); barrenderer.setSeriesPaint(1, gradientpaint1); barrenderer.setSeriesPaint(2, gradientpaint2); barrenderer.setLegendItemToolTipGenerator(new StandardCategorySeriesLabelGenerator( "Tooltip: {0}")); CategoryAxis categoryaxis = categoryplot.getDomainAxis(); categoryaxis.setCategoryLabelPositions(CategoryLabelPositions .createUpRotationLabelPositions(0.52359877559829882D)); return jfreechart; } public static JPanel createDemoPanel() { JFreeChart jfreechart = createChart(createDataset()); saveFileAsJPG(jfreechart,"f:\\jfreechart\\barchart.jpg",700,550); return new ChartPanel(jfreechart); } public static void main(String args[]) { BarChartDemo1 barchartdemo1 = new BarChartDemo1("黑体JFreeChart: BarChartDemo1.java"); barchartdemo1.pack(); RefineryUtilities.centerFrameOnScreen(barchartdemo1); barchartdemo1.setVisible(true); } public static void saveFileAsJPG(JFreeChart chart,String filename,int width,int height) { FileOutputStream fos = null; try { fos = new FileOutputStream(filename); ChartUtilities.writeChartAsJPEG(fos, chart, width, height); } catch(IOException e) { e.printStackTrace(); } }} 看看吧 别忘了jar包 4楼的例子如何与jsp结合了用呢 <%String filename = ServletUtilities.saveChartAsJPEG(JFreeChart chart, int width, int height, ChartRenderingInfo info, javax.servlet.http.HttpSession session) %><table width="100%"> <tr> <td align="center"> <!-- 生成图形 --> <img src="<%= URL %>" width=800 height=700 border=0 usemap="#<%= filename %>" alt=""> </td> </tr> </table> 这样呢 讨论帖,SSH与反射以及聊天 新手求助!关于servlet ~~~~~~~~~~顺便默哀死难的同胞! 怎样改变tomcat的默认欢迎界面 使用jtds驱动连接sql数据库时为什么会产生jtds.tmp缓存文件,怎样消除缓存文件 数字怎样转化成中文? 判断日期格式????急!!! jspSmartUpload组件在哪下载 请问jsp如何实现一个用户只能同时在一个地方登陆! jsp 无法显示的问题 求高手帮忙 大侠救我呀!(急急急!!!) 请问如何操作可以使不同的action获取同一个jsp页面中的数据 求算法
package com;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GradientPaint;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.StandardCategorySeriesLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities; import java.io.*;
public class BarChartDemo1 extends ApplicationFrame {
public BarChartDemo1(String s) {
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(700, 550));
setContentPane(jpanel);
}
private static CategoryDataset createDataset() {
String s = "每日PV";
String s1 = "每日IP数";
String s2 = "注册用户数";
String s3 = "A网站";
String s4 = "B网站";
String s5 = "C网站";
String s6 = "D网站";
String s7 = "E网站";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
//A-E网站的 每日PV
defaultcategorydataset.addValue(-1.0D, s, s3);
defaultcategorydataset.addValue(4D, s, s4);
defaultcategorydataset.addValue(3D, s, s5);
defaultcategorydataset.addValue(5D, s, s6);
defaultcategorydataset.addValue(5D, s, s7);
defaultcategorydataset.addValue(5D, s1, s3);
defaultcategorydataset.addValue(7D, s1, s4);
defaultcategorydataset.addValue(6D, s1, s5);
defaultcategorydataset.addValue(8D, s1, s6);
defaultcategorydataset.addValue(4D, s1, s7);
defaultcategorydataset.addValue(4D, s2, s3);
defaultcategorydataset.addValue(3D, s2, s4);
defaultcategorydataset.addValue(2D, s2, s5);
defaultcategorydataset.addValue(3D, s2, s6);
defaultcategorydataset.addValue(6D, s2, s7);
return defaultcategorydataset;
}
private static JFreeChart createChart(CategoryDataset categorydataset) {
//名字,横坐标名字,纵坐标名字,图例显示的方式(横着显示,还是竖着),
JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo 1", "网站", "数值",
categorydataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
//设置背景十字线是否阴影显示
categoryplot.setDomainGridlinesVisible(false);
//点的时候有线
categoryplot.setRangeCrosshairVisible(true);
categoryplot.setRangeCrosshairPaint(Color.red);
//返回数轴
NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
//numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
numberaxis.setStandardTickUnits(NumberAxis.createStandardTickUnits());
BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();
barrenderer.setBaseItemLabelFont(new Font("宋体", Font.ITALIC, 12));
barrenderer.setSeriesItemLabelFont(1, new Font("宋体", Font.ITALIC, 12));
/*增加设置字体的代码*/
CategoryAxis domainAxis = categoryplot.getDomainAxis(); /*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 18)); /*------设置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)); /*------这句代码解决了底部汉字乱码的问题-----------*/
jfreechart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
barrenderer.setDrawBarOutline(false);
GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, new Color(
0, 0, 64));
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F,
new Color(0, 64, 0));
GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(
64, 0, 0));
barrenderer.setSeriesPaint(0, gradientpaint);
barrenderer.setSeriesPaint(1, gradientpaint1);
barrenderer.setSeriesPaint(2, gradientpaint2);
barrenderer.setLegendItemToolTipGenerator(new StandardCategorySeriesLabelGenerator(
"Tooltip: {0}"));
CategoryAxis categoryaxis = categoryplot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions
.createUpRotationLabelPositions(0.52359877559829882D));
return jfreechart;
}
public static JPanel createDemoPanel() {
JFreeChart jfreechart = createChart(createDataset());
saveFileAsJPG(jfreechart,"f:\\jfreechart\\barchart.jpg",700,550);
return new ChartPanel(jfreechart);
}
public static void main(String args[]) {
BarChartDemo1 barchartdemo1 = new BarChartDemo1("黑体JFreeChart: BarChartDemo1.java");
barchartdemo1.pack();
RefineryUtilities.centerFrameOnScreen(barchartdemo1);
barchartdemo1.setVisible(true);
}
public static void saveFileAsJPG(JFreeChart chart,String filename,int width,int height)
{
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(filename);
ChartUtilities.writeChartAsJPEG(fos, chart, width, height);
}
catch(IOException e)
{
e.printStackTrace();
}
}
} 看看吧 别忘了jar包
String filename = ServletUtilities.saveChartAsJPEG(JFreeChart chart,
int width,
int height,
ChartRenderingInfo info,
javax.servlet.http.HttpSession session)
%><table width="100%">
<tr>
<td align="center">
<!-- 生成图形 -->
<img src="<%= URL %>" width=800 height=700 border=0 usemap="#<%= filename %>" alt="">
</td>
</tr>
</table> 这样呢