- 浏览: 73619 次
- 性别:
- 来自: 黑龙江
文章分类
最新评论
-
Ethan楚翔:
jdk1.7运行报错,大家用1.6以下版本
Spring AOP 简单demo -
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene与DB结合示例 -
fl_zxf:
在看,3Q
Lucene与DB结合示例 -
jushi1988:
哎.米休 写道在action的第一行会报空指针异常 求解啊你看 ...
Lucene与DB结合示例 -
哎.米休:
在action的第一行会报空指针异常 求解啊
Lucene与DB结合示例
很久以前看了点jfreechart相关的东西,就做了一个小例子。项目就是一个简单的web工程,名字叫JFreeChartTest。
数据库是Mysql,还是基本的JDBC。
1、工具包 代码如下:
(1) Configuration 类
package com.jushi.utils; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class Configuration { private Properties properties; private final static Configuration cfg = new Configuration(); private Configuration() { properties = new Properties(); InputStream is = null; try { is = getClass().getResourceAsStream("/gdb.properties"); properties.load(is); } catch (Exception e) { System.out.println("不能加载gdb.properties文件....."); e.printStackTrace(); } finally { try { if (is != null) is.close(); } catch (IOException io) { io.printStackTrace(); } } } public static Configuration getInstance() { return cfg; } public String getValue(String key) { return properties.getProperty(key); } }
(2) DBConnManager 类 数据连接管理类
package com.jushi.utils; import java.io.Serializable; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Vector; public class DBConnManager implements Serializable { private final static DBConnManager instance = new DBConnManager(); private DBConnManagerPool pool; /** * 获得DBConnManager的实例 */ public static DBConnManager getInstance() { return instance; } /** * 获取连接 * * @return * @throws SQLException */ public Connection getConnection() throws SQLException { return pool.getConnection(); } /** * 释放连接 * * @param con * @throws SQLException */ public void freeConnection(Connection con) throws SQLException { pool.freeConnection(con); } /** * 初始化构造函数 */ private DBConnManager() { init(); } /** * 初始化 */ private void init() { Configuration cfg = Configuration.getInstance(); String db_driver = cfg.getValue("DB.DRIVER"); String db_url = cfg.getValue("DB.URL"); String db_user = cfg.getValue("DB.USER"); String db_password = cfg.getValue("DB.PASSWORD"); int db_maxconn = Integer.parseInt(cfg.getValue("DB.MAX_CONNECTIONS")); try { Class.forName(db_driver); } catch (Exception e) { e.printStackTrace(); } pool = new DBConnManagerPool(db_url, db_user, db_password, db_maxconn); } /** * 内部类 */ class DBConnManagerPool { private Vector freeConns = new Vector(); private int maxConn; private int connNum; private String URL; private String user; private String password; public DBConnManagerPool(String URL, String user, String password, int maxConn) { this.URL = URL; this.user = user; this.password = password; this.maxConn = maxConn; } public synchronized void freeConnection(Connection conn) { freeConns.add(conn); connNum--; notifyAll(); } public synchronized Connection getConnection() throws SQLException { Connection conn = null; if (freeConns.size() > 0) { conn = (Connection) freeConns.firstElement(); freeConns.removeElementAt(0); try { if (conn.isClosed()) { conn = getConnection(); } } catch (Exception e) { conn = getConnection(); } } else if (maxConn == 0 || connNum < maxConn) { conn = newConnection(); } if (conn != null) { connNum++; } return conn; } /** * 通过url,user,password 加载数据库驱动,连接数据库 * * @return * @throws SQLException */ private Connection newConnection() throws SQLException { Connection con = DriverManager.getConnection(URL, user, password); return con; } } public static void main(String as[]) throws Exception { Connection conn = instance.getConnection(); System.out.println("=============" + conn); } }
2、业务逻辑加dao 因为只是测试 就混在一起了
DomainService 类
package com.jushi.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.jushi.utils.DBConnManager; /** * 主要生成立体直方图、柱形图、饼图、曲线图的service混合dao * * @author jushi * */ public class DomainService { private static DomainService instance; private Connection conn; private PreparedStatement ps; private ResultSet rs; public static DomainService getInstance() { if (instance == null) { instance = new DomainService(); } return instance; } private DomainService() { } public String getAllProductsTotal() { StringBuffer product = new StringBuffer(); String str1 = "", str2 = ""; try { String sql = "select count(id) as total,productname,type from product group by productname,type order by productname"; conn = DBConnManager.getInstance().getConnection(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { String productname = rs.getString("productname"); String type = rs.getString("type"); String total = rs.getString("total"); if (type.equals("20-25")) { str1 += type + "," + productname + "," + total + "!"; } else str2 += type + "," + productname + "," + total + "!"; } product.append(str1 + "@" + str2); } catch (Exception e) { e.printStackTrace(); } finally { try { DBConnManager.getInstance().freeConnection(conn); } catch (Exception e) { e.printStackTrace(); } } return product.toString(); } public int getAllCount() { int count = 0; try { String sql = "select count(id) as count from product"; conn = DBConnManager.getInstance().getConnection(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { count = rs.getInt(1); } return count; } catch (Exception e) { e.printStackTrace(); return 1; } finally { try { DBConnManager.getInstance().freeConnection(conn); } catch (Exception e) { e.printStackTrace(); } } } public static void main(String as[]) { DomainService.getInstance().getAllProductsTotal(); DomainService.getInstance().getAllCount(); } }
3. 生成图的类包
(1). 柱形图
package com.jushi.jfreechart; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import javax.servlet.http.HttpSession; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; 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.StandardCategoryItemLabelGenerator; 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 org.jfree.chart.servlet.ServletUtilities; public class BarChartDemo extends ApplicationFrame { public BarChartDemo(String title) { super(title); CategoryDataset dataset = createDataset(); JFreeChart chart = createChart(dataset); ChartPanel panel = new ChartPanel(chart, false); panel.setPreferredSize(new Dimension(500, 300)); setContentPane(panel); } public static String getChart(HttpSession session, String title) { String fn = ""; new BarChartDemo(title); CategoryDataset dataset = createDataset(); JFreeChart chart = createChart(dataset); try { fn = ServletUtilities.saveChartAsJPEG(chart, 600, 400, session); } catch (Exception e) { e.printStackTrace(); } return fn; } private static CategoryDataset createDataset() { //row String row1 = "2007年"; String row2 = "2008年"; String row3 = "2009年"; //column String col1 = "第一季度"; String col2 = "第二季度"; String col3 = "第三季度"; String col4 = "第四季度"; DefaultCategoryDataset defaultDataset = new DefaultCategoryDataset(); defaultDataset.addValue(1.0, row1, col1); defaultDataset.addValue(4.0, row1, col2); defaultDataset.addValue(6.0, row1, col3); defaultDataset.addValue(3.0, row1, col4); defaultDataset.addValue(2.0, row2, col1); defaultDataset.addValue(1.0, row2, col2); defaultDataset.addValue(3.0, row2, col3); defaultDataset.addValue(5.0, row2, col4); defaultDataset.addValue(3.0, row3, col1); defaultDataset.addValue(4.0, row3, col2); defaultDataset.addValue(6.0, row3, col3); defaultDataset.addValue(1.0, row3, col4); return defaultDataset; } private static JFreeChart createChart(CategoryDataset data) { JFreeChart chart = ChartFactory.createBarChart("2007-2009年年度营业额柱状图", "营业额柱状图", "百万(RMB)", data, PlotOrientation.VERTICAL, true, true, true); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setDomainGridlinesVisible(true); plot.setRangeGridlinePaint(Color.LIGHT_GRAY); final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setDrawBarOutline(false); GradientPaint paint = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f, 0.0f, new Color(0, 0, 64)); GradientPaint paint1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f, 0.0f, new Color(0, 64, 0)); GradientPaint paint2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f, 0.0f, new Color(64, 0, 0)); renderer .setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer.setItemLabelFont(new Font("黑体", Font.BOLD, 12));//12号黑体加粗 renderer.setItemLabelPaint(Color.black);//字体为黑色 renderer.setItemLabelsVisible(true); renderer.setSeriesPaint(0, paint); renderer.setSeriesPaint(1, paint1); renderer.setSeriesPaint(2, paint2); org.jfree.chart.axis.ValueAxis value = plot.getRangeAxis(); value.setUpperMargin(0.15);//设置最高的一个柱与图片顶端的距离(最高柱的15%) CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setCategoryLabelPositions(CategoryLabelPositions .createUpRotationLabelPositions(Math.PI / 6.0)); return chart; } public static void main(String as[]) { BarChartDemo bcd = new BarChartDemo("2007-2009年年度营业额柱状图"); bcd.pack(); RefineryUtilities.centerFrameOnScreen(bcd); bcd.setVisible(true); } }
(2). 3D柱形图
package com.jushi.jfreechart; import java.awt.Color; import java.awt.Font; import javax.servlet.http.HttpSession; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.AxisLocation; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import com.jushi.dao.DomainService; public class Chart { public Chart() { super(); } public static String getChart(HttpSession session, String type) throws Exception { CategoryDataset dataset = getDataSet(type); JFreeChart chart = ChartFactory.createBarChart3D("产品购买年龄段统计图(日)", // 图表标题 "购买年龄段对比", // 目录轴的显示标签 "人数", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) true, // 是否生成工具 true // 是否生成URL链接 ); CategoryPlot plot = chart.getCategoryPlot();// 获得图表区域对象 // 设置图表的纵轴和横轴org.jfree.chart.axis.CategoryAxis org.jfree.chart.axis.CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setLowerMargin(0.1);// 设置距离图片左端距离此时为10% domainAxis.setUpperMargin(0.1);// 设置距离图片右端距离此时为百分之10 domainAxis.setCategoryLabelPositionOffset(10);// 图表横轴与标签的距离(10像素) domainAxis.setCategoryMargin(0.2);// 横轴标签之间的距离20% // 设定柱子的属性 org.jfree.chart.axis.ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setUpperMargin(0.1);// 设置最高的一个柱与图片顶端的距离(最高柱的10%) // 设置图表的颜色 org.jfree.chart.renderer.category.BarRenderer3D renderer; renderer = new org.jfree.chart.renderer.category.BarRenderer3D(); renderer.setBaseOutlinePaint(Color.red); renderer.setSeriesPaint(0, Color.cyan);// 计划柱子的颜色为青色 renderer.setSeriesOutlinePaint(0, Color.BLACK);// 边框为黑色 renderer.setSeriesPaint(1, Color.yellow);// 实报柱子的颜色为绿色 renderer.setSeriesOutlinePaint(1, Color.red);// 边框为红色 renderer.setItemMargin(0.1);// 组内柱子间隔为组宽的10% // 显示每个柱的数值,并修改该数值的字体属性 renderer .setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer.setItemLabelFont(new Font("黑体", Font.BOLD, 12));// 12号黑体加粗 renderer.setItemLabelPaint(Color.black);// 字体为黑色 renderer.setItemLabelsVisible(true); plot.setRenderer(renderer);// 使用我们设计的效果 // 设置纵横坐标的显示位置 plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);// 学校显示在下端(柱子竖直)或左侧(柱子水平) plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); // 人数显示在下端(柱子水平)或左侧(柱子竖直) String fn = ServletUtilities.saveChartAsJPEG(chart, 600, 450, null, session); return fn; } /** * 获取一个演示用的组合数据集对象 3D柱形图 * * @return */ private static CategoryDataset getDataSet(String type) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); String[] allpro = DomainService.getInstance().getAllProductsTotal() .split("@"); for (int i = 0; i < allpro.length; i++) { String[] single = allpro[i].split("!"); for (int j = 0; j < single.length; j++) { String[] single1 = single[j].split(","); for (int m = 0; m < single1.length; m++) { switch (Integer.parseInt(type)) { case 1: dataset.addValue(Double.parseDouble(single1[2]), single1[0], single1[1] + "岁"); break; case 2: dataset.addValue(Double.parseDouble(single1[2]), single1[1], single1[0] + "岁"); break; } } } } return dataset; } }
(3).折线图
package com.jushi.jfreechart; import java.awt.Color; import javax.servlet.http.HttpSession; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import com.jushi.dao.DomainService; /** * 折线图 * * @author jushi * */ public class LineChart extends ApplicationFrame { public LineChart(String s, String type) { super(s); setContentPane(createDemoPanel(type)); } // 生成显示图表的面板 public static JPanel createDemoPanel(String type) { JFreeChart jfreechart = createChart(type); return new ChartPanel(jfreechart); } // 生成饼图数据集对象 public static DefaultCategoryDataset createDataset(String type) { DefaultCategoryDataset linedata = new DefaultCategoryDataset(); String[] allpro = DomainService.getInstance().getAllProductsTotal() .split("@"); for (int i = 0; i < allpro.length; i++) { String[] single = allpro[i].split("!"); for (int j = 0; j < single.length; j++) { String[] single1 = single[j].split(","); for (int m = 0; m < single1.length; m++) { switch (Integer.parseInt(type)) { case 1: linedata.addValue(Double.parseDouble(single1[2]), single1[0], single1[1] + "岁"); break; case 2: linedata.addValue(Double.parseDouble(single1[2]), single1[1], single1[0] + "岁"); break; } } } } return linedata; } /** * 返回jfreechart 对象 * * @param type * @return JFreeChart */ public static JFreeChart createChart(String type) { DefaultCategoryDataset linedata = createDataset(type); JFreeChart chart = ChartFactory.createLineChart("产品购买年龄段统计图(日)", "产品购买年龄段统计图(日)", "人数", linedata, PlotOrientation.VERTICAL, true, true, true); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setBackgroundPaint(Color.lightGray); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();// Y轴对象 rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero(true); rangeAxis.setUpperMargin(0.20); rangeAxis.setLowerMargin(0.2D); rangeAxis.setLabelAngle(Math.PI / 3.0); return chart; } /** * 生成折线图的文件 * * @return String * @param sesson * @param title */ public static String getLineChart(HttpSession session, String type) throws Exception { String file = ""; new PieChart("产品购买年龄段统计图(日)", type); JFreeChart piechart = createChart(type); try { file = ServletUtilities.saveChartAsJPEG(piechart, 600, 400, null, session); } catch (Exception e) { e.printStackTrace(); } return file; } public static void main(String as[]) { LineChart lc = new LineChart("折线图", "1"); lc.pack(); RefineryUtilities.centerFrameOnScreen(lc); lc.setVisible(true); } }
(4).饼图
package com.jushi.jfreechart; import java.awt.Font; import java.text.DecimalFormat; import java.text.NumberFormat; import java.awt.Color; import javax.servlet.http.HttpSession; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.block.BlockContainer; import org.jfree.chart.block.BorderArrangement; import org.jfree.chart.block.LabelBlock; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.PiePlot; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.chart.title.LegendTitle; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleEdge; import org.jfree.ui.RefineryUtilities; import com.jushi.dao.DomainService; public class PieChart extends ApplicationFrame{ public PieChart(String s,String type){ super(s); setContentPane(createDemoPanel(type)); } // 生成显示图表的面板 public static JPanel createDemoPanel(String type){ JFreeChart jfreechart = createChart(type); return new ChartPanel(jfreechart); } // 生成饼图数据集对象 public static PieDataset createDataset(String type){ DefaultPieDataset piedata = new DefaultPieDataset(); int count = DomainService.getInstance().getAllCount(); String[] allpro = DomainService.getInstance().getAllProductsTotal().split("@"); for(int i=0; i<allpro.length; i++){ String[] single = allpro[i].split("!"); for(int j=0; j<single.length; j++){ String[] single1= single[j].split(","); for(int m=0; m<single1.length; m++){ double dd = Double.parseDouble(single1[2])/Double.parseDouble(String.valueOf(count)); java.text.DecimalFormat df = new java.text.DecimalFormat("0.00"); String aa = df.format(dd); switch(Integer.parseInt(type)){ case 1: piedata.setValue(single1[1], Double.parseDouble(aa));break; case 2: piedata.setValue(single1[0], Double.parseDouble(aa));break; } } } } return piedata; } /** * 生成图表主对象JFreeChart * @param session * @return JFreeChart */ public static JFreeChart createChart(String type){ PieDataset piedata = createDataset(type); //定义图表对象 JFreeChart chart = ChartFactory.createPieChart("产品购买年龄段统计图(日)",piedata,true,true,false); //获得图表显示对象 PiePlot pieplot = (PiePlot) chart.getPlot(); //设置图表标签字体 pieplot.setLabelFont(new Font("宋体",Font.BOLD,12)); pieplot.setNoDataMessage("没有查询到数据"); pieplot.setCircular(true); pieplot.setLabelGap(0.01D);//间距 pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator( ("{0}: ({2})"), NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); LegendTitle legendtitle = new LegendTitle(chart.getPlot()); BlockContainer blockcontainer = new BlockContainer(new BorderArrangement()); LabelBlock labelblock = new LabelBlock("产品购买年龄段统计图(日)", new Font("宋体", 1, 13)); labelblock.setPadding(5D, 5D, 5D, 5D); blockcontainer.add(labelblock, RectangleEdge.TOP); LabelBlock labelblock1 = new LabelBlock(""); labelblock1.setPadding(8D, 20D, 2D, 5D); blockcontainer.add(labelblock1, RectangleEdge.BOTTOM); BlockContainer blockcontainer1 = legendtitle.getItemContainer(); blockcontainer1.setPadding(2D, 10D, 5D, 2D); blockcontainer.add(blockcontainer1); legendtitle.setWrapper(blockcontainer); legendtitle.setPosition(RectangleEdge.RIGHT); legendtitle.setHorizontalAlignment(HorizontalAlignment.LEFT); legendtitle.setBackgroundPaint(Color.LIGHT_GRAY); chart.addSubtitle(legendtitle); return chart; } /** * 生成饼图的文件 * @return String * @param sesson * @param title */ public static String getPieChart(HttpSession session,String type) throws Exception{ String file =""; new PieChart("产品购买年龄段统计图(日)",type); JFreeChart piechart = createChart(type); try{ file = ServletUtilities.saveChartAsJPEG(piechart, 600, 400, null, session); }catch(Exception e){ e.printStackTrace(); } return file; } public static void main(String[] args){ PieChart pc = new PieChart("产品购买年龄段统计图(日)","1"); pc.pack(); RefineryUtilities.centerFrameOnScreen(pc); pc.setVisible(true); } }
4. gdb.properties 文件
#---Database--- DB.DRIVER=com.mysql.jdbc.Driver DB.URL=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk DB.USER=root DB.PASSWORD=jushi DB.MAX_CONNECTIONS=200
5. web.xml 文件内容 需要配置jfreechart的servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <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>/DisplayChart</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
6. 视图 index.jsp
<%@ page language="java" import="java.util.*,com.jushi.jfreechart.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>chart</title> </head> <body> <center><font color=green size="10">立体直方图、饼图、柱形图、折线图 测试</font></center><hr> <center><a href="index.jsp?type=1">第一种</a> <a href="index.jsp?type=2">第二种</a></center> <hr/> <% String type = request.getParameter("type")==null?"1":request.getParameter("type"); String fn=Chart.getChart(request.getSession(),type);//立体直方图 String fn1 = BarChartDemo.getChart(request.getSession(),"2007-2009年年度营业额柱状图");//柱形图 String fn2 =PieChart.getPieChart(request.getSession(),type);//饼图 String fn3 = LineChart.getLineChart(request.getSession(),type);//曲线图 String path1 = basePath+"DisplayChart?filename="+fn1; String pathnew= basePath+"DisplayChart?filename="+fn; String path2 = basePath+"DisplayChart?filename="+fn2; String path3= basePath+"DisplayChart?filename="+fn3; %> <center><img src="<%=pathnew%>" border="0"/></center><hr> <center><img src="<%=path2 %>" border="0"/></center><hr> <center><img src="<%=path3 %>" border="0"/></center><hr> <center><img src="<%=path1 %>" border="0"/></center><hr> <br/> </body> </html>
运行 http://localhost:8080/JFreeChartTest/
附源码及数据库sql。
发表评论
-
HttpClient浅尝-小试牛刀
2011-06-13 17:07 1558今天,突然想重新研究下HttpClient的应用, ... -
Java查找指定文件的简单应用
2011-04-08 09:24 2091前段时间,应项目中需要,弄了一个关于删除某个时间段的临时文件、 ... -
基于WebService的应用
2010-03-22 16:44 2355前段日子看到了一个提供WEB服务的网站-www.web ... -
js 防止页面刷新
2010-03-18 11:02 12996var oLastBtn=0,bIsMenu=false i ... -
很强大的日历
2009-09-03 13:32 19382一个万年历 功能很全,带农历 https://token.l ... -
java技术集合
2009-06-18 12:30 1169java技术集合 -
留言内容转换通用Bean
2009-06-15 13:48 2120package com.web; import ...
相关推荐
JFreeChart 是一个开源的 Java 图表库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图、面积图等,用于生成高质量的静态和动态图表。这个库广泛应用于数据分析、报告生成、Web 应用和桌面应用中。在初学者...
JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图、甘特图等,使得开发者能够方便地在应用程序中展示数据。JFreeChart 的灵活性和易用性使其成为Java开发者的...
例如,创建一个简单的饼图: ```java JFreeChart chart = ChartFactory.createPieChart( "图表标题", // 图表标题 dataset, // 数据集 true, // 显示 legend true, // 是否生成 tool tips false); // 是否...
这个 JSP 示例展示了如何利用 JFreeChart 创建一个简单的柱状图,并在 Web 页面上显示。实际应用中,数据集通常会从数据库或计算得到,图表样式和交互功能也可以通过调整各种配置进行定制。 **四、扩展应用** 除了...
这个简单的例子就是通过以上步骤来创建并展示一个基本的JFreeChart图表。通过学习和实践,你可以进一步探索JFreeChart的高级功能,如动画、交互性、3D图表等,从而在你的Java应用中构建出更复杂、更美观的数据可视化...
jFreeChart是一个开源的Java库,用于生成高质量的图表,支持多种图表类型,如柱状图、饼图、线形图、散点图、仪表盘、时钟表等。这个库广泛应用于Java应用程序、Web应用、报表系统以及数据可视化项目中。jFreeChart...
你可以使用`XYSeries`来创建一个简单的系列,然后将多个系列添加到`XYSeriesCollection`中。例如: ```java XYSeries series = new XYSeries("Series 1"); series.add(1, 2); series.add(2, 3); // 添加更多数据点....
以上代码展示了如何使用JFreeChart创建一个简单的线图并显示在Swing窗口中。通过深入学习和实践,你可以利用JFreeChart创建出满足各种需求的复杂图表。 ### 7. 进阶特性 JFreeChart还支持许多高级功能,如自定义...
以上是一个简单的 JFreeChart 示例,展示了如何创建一个条形图并将其保存或显示。实际上,JFreeChart 提供了许多高级特性,如动态图表、自定义绘图、交互式图表等。通过深入学习和实践,你可以充分利用 JFreeChart ...
JFreeChart 是一款开源的 Java 图表库,用于在 Java 应用程序中生成高质量的图表。...无论你是需要在桌面应用、Web 应用还是其他 Java 平台上展示数据,JFreeChart 都能提供一个高效且美观的解决方案。
在给定的“JFreeChart简单小例子”中,我们可以了解到如何利用这个库来生成基本的图表。这篇博客文章(链接:https://zz563143188.iteye.com/blog/1933112)可能详细解释了如何设置和使用JFreeChart,以便在Java应用...
这个例子是关于如何使用JFreeChart来生成图表的一个实例,通过它我们可以深入理解JFreeChart的基本用法和功能。 **一、JFreeChart介绍** JFreeChart库提供了丰富的图表类型,包括折线图、柱状图、饼图、散点图、...
总结,JFreeChart是一个强大且灵活的Java图表库,通过简单的API调用即可生成各种复杂的图表。结合提供的实例"jfreechartdemo",你可以进一步学习和实践,加深对JFreeChart的理解,并将其应用于实际项目中,提升数据...
JFreeChart 是一个强大的开源Java图表库,它提供了一种简单的方法来创建高质量的图表,包括线图、柱状图、饼图、散点图等,广泛应用于Java应用程序和Web应用中。在这个实例中,我们将深入探讨JFreeChart在客户端/...
实际操作时,结合提供的实例,你会发现JFreeChart是一个功能丰富且易于使用的图表库。不断探索和实践,你将能够充分利用它来实现各种复杂的数据可视化需求。记住,实践是检验真理的唯一标准,动手尝试才是提升技能的...
这个压缩包中的文件很可能是包含了一个简单的Java项目,可能包括了`pom.xml`文件(如果你使用Maven)或`build.gradle`文件(如果你使用Gradle),这些文件会列出JFreeChart库和其他依赖的版本。确保正确导入并配置...
例如,要创建一个简单的柱状图,可以使用`ChartFactory.createBarChart()`方法: ```java CategoryDataset dataset = ... // 创建数据集 JFreeChart chart = ChartFactory.createBarChart( "图表标题", // 图表...
JFreeChart 是一个广泛使用的 Java 图形库,它允许开发者创建各种高质量的图表,包括折线图、柱状图、饼图、散点图等。在Java应用中,尤其是在数据可视化方面,JFreeChart 提供了丰富的功能和自定义选项。本篇将深入...
例如,创建一个简单的柱状图,可以这样做: ```java CategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(10, "Series 1", "Category 1"); dataset.addValue(20, "Series 1", "Category 2");...