⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createbarmodel.java

📁 本程序主要是实现了JFreeChart的图形显示!
💻 JAVA
字号:
package com.kai.jfc;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis3D;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickMarkPosition;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.xy.StackedXYBarRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeTableXYDataset;
import org.jfree.data.xy.TableXYDataset;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.StandardGradientPaintTransformer;
import org.jfree.ui.TextAnchor;

import com.kai.bean.DateBean;

/**
 * 类文件:CreateBarModel.java
 * @author 作者: 王凯 E-mail: wk1025@126.com
 * @version 创建时间:Sep 9, 2008 2:23:28 PM
 * 类 CreateBarModel 的作用:
 */

public class CreateBarModel 
{
	public String createChart(HttpSession session, PrintWriter pw,ArrayList list)
    {
		String fileName = null;
		
		TableXYDataset tablexydataset = this.createDataset(list);
        DateAxis dateaxis = new DateAxis("Date");
        
        dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,2));;
        
        dateaxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
        
        NumberAxis numberaxis = new NumberAxis("%");
        
        StackedXYBarRenderer stackedxybarrenderer = new StackedXYBarRenderer(0.10000000000000001D);

        stackedxybarrenderer.setBaseItemLabelsVisible(true);
       
        stackedxybarrenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
        
        stackedxybarrenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator("{0} : {1} = {2} tonnes", new SimpleDateFormat("yyyy"),new DecimalFormat("#,##0"))); 
        
        stackedxybarrenderer.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.HORIZONTAL));
        
        XYPlot xyplot = new XYPlot(tablexydataset, dateaxis, numberaxis, stackedxybarrenderer);

//      xyplot.setOrientation(PlotOrientation.HORIZONTAL);//把图像横过来显示
        
        JFreeChart jfreechart = new JFreeChart("对比", xyplot);
        ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
 	    try 
 	    {
 		   fileName = ServletUtilities.saveChartAsPNG(jfreechart, 500, 300, info,session);// 生成图片
 		   // Write the image map to the PrintWriter
 		   ChartUtilities.writeImageMap(pw, fileName, info, false);
 	    } catch (IOException e) {
 		   e.printStackTrace();
 	    }
 	    pw.flush();
        return fileName;
    }
	
	public Connection getConn()
	{
		//172.16.36.245
		String url = "jdbc:mysql://localhost:3306/newdatabase";
		String u = "root";
		String p = "123456";
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Connection conn = null;
		try {
			conn = java.sql.DriverManager.getConnection(url, u, p);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	public List getDate()
	{
		Connection conn = this.getConn();
		ArrayList list = new ArrayList();
		try {
			Statement st = conn.createStatement();
			ResultSet rs = st.executeQuery("select * from q91");
			while(rs.next())
			{
				DateModel date = new DateModel();
				date.setName("山东");
				date.setData(rs.getDouble("shandong"));
				date.setDate(rs.getString("t"));
				DateModel date1 = new DateModel();
				date1.setName("北京");
				date1.setData(rs.getDouble("beijing"));
				date1.setDate(rs.getString("t"));
				list.add(date);
				list.add(date1);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	private TableXYDataset createDataset(ArrayList list1)
    {
		List list = this.getDate();
        TimeTableXYDataset timetablexydataset = new TimeTableXYDataset();
        for(int i = 0;i<list.size();i++)
        {
        	DateModel bean = (DateModel) list.get(i);
//        	timetablexydataset.add(new Month(bean.getMonth(), bean.getYear()), bean.getDate(), bean.getName());
        }
        return timetablexydataset;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -