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

📄 chartstat.java

📁 jsf在线考试系统的实例
💻 JAVA
字号:
package com.jlobo.common;

import java.awt.Color;
import java.awt.GradientPaint;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;

import org.jfree.chart.ChartFactory;
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.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;

public class ChartStat extends HttpServlet {
	private static final long serialVersionUID = 1L;

	class StatDepartment {
		private String name;
		private int total;
		private int upProbity;
		private int downProbity;
		
		public StatDepartment(){
			
		}
		
		public StatDepartment(String name,int total,int upProbity,int downProbity){
			this.name = name;
			this.total = total;
			this.upProbity = upProbity;
			this.downProbity = downProbity;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getTotal() {
			return total;
		}

		public void setTotal(int total) {
			this.total = total;
		}

		public int getUpProbity() {
			return upProbity;
		}

		public void setUpProbity(int upProbity) {
			this.upProbity = upProbity;
		}

		public int getDownProbity() {
			return downProbity;
		}

		public void setDownProbity(int downProbity) {
			this.downProbity = downProbity;
		} 
	}
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		String type = req.getParameter("type");
		DefaultCategoryDataset data=null;
		String title="";
		if(type.equals("01"))
		{
			
			title = "廉政档案信息统计";
			String catalog = req.getParameter("catalog");
			StatDepartment[] stat = new StatDepartment[6];
			
			stat[0] = new StatDepartment();			
			stat[0].setName("白银市国税局");
			stat[0].setTotal(Integer.parseInt(req.getParameter("zjtotal")));
			stat[0].setUpProbity(Integer.parseInt(req.getParameter("zjup")));
			stat[0].setDownProbity(Integer.parseInt(req.getParameter("zjdown")));
			
			stat[1] = new StatDepartment();
			stat[1].setName("白银区国税局");
			stat[1].setTotal(Integer.parseInt(req.getParameter("baiytotal")));
			stat[1].setUpProbity(Integer.parseInt(req.getParameter("baiyup")));
			stat[1].setDownProbity(Integer.parseInt(req.getParameter("baiydown")));
			
			stat[2] = new StatDepartment();
			stat[2].setName("平川区国税局");
			stat[2].setTotal(Integer.parseInt(req.getParameter("pingchtotal")));
			stat[2].setUpProbity(Integer.parseInt(req.getParameter("pingchup")));
			stat[2].setDownProbity(Integer.parseInt(req.getParameter("pingchdown")));
			
			stat[3] = new StatDepartment();
			stat[3].setName("靖远县国税局");
			stat[3].setTotal(Integer.parseInt(req.getParameter("jinytotal")));
			stat[3].setUpProbity(Integer.parseInt(req.getParameter("jinyup")));
			stat[3].setDownProbity(Integer.parseInt(req.getParameter("jinydown")));
			
			stat[4] = new StatDepartment();
			stat[4].setName("景泰县国税局");
			stat[4].setTotal(Integer.parseInt(req.getParameter("jinttotal")));
			stat[4].setUpProbity(Integer.parseInt(req.getParameter("jintup")));
			stat[4].setDownProbity(Integer.parseInt(req.getParameter("jintdown")));
			
			stat[5] = new StatDepartment();
			stat[5].setName("会宁县国税局");
			stat[5].setTotal(Integer.parseInt(req.getParameter("huintotal")));
			stat[5].setUpProbity(Integer.parseInt(req.getParameter("huinup")));
			stat[5].setDownProbity(Integer.parseInt(req.getParameter("huindown")));
			
			
			
			data = getDataSet01(catalog,stat);
		}else if(type.equals("02"))
		{
			title = "按信息类型统计";
			String startDate = req.getParameter("startDate");
			String endDate   = req.getParameter("endDate");
			//data = getDataSet02(startDate,endDate);
			
		}else if(type.equals("03"))
		{
			
			
		}else
		{
			data = getDataSet00();
			
		}
		

		res.setContentType("image/jpeg");
		
		JFreeChart chart = ChartFactory.createBarChart3D(title, // 图表标题
				"",
				"数量",
				data, // 数据集
				PlotOrientation.VERTICAL, // 图表方向:水平、垂直
				true, // 是否显示图例(对于简单的柱状图必须是false)
				true, // 是否生成工具
				false // 是否生成URL链接
				);
	  
		chart.setBackgroundPaint(Color.white);

        // get a reference to the plot for further customisation...
        CategoryPlot plot = chart.getCategoryPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setDomainGridlinePaint(Color.white);
        plot.setDomainGridlinesVisible(true);
        plot.setRangeGridlinePaint(Color.white);

        // set the range axis to display integers only...
        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

        // disable bar outlines...
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setDrawBarOutline(false);
        
        // set up gradient paints for series...
        GradientPaint gp0 = new GradientPaint(
            0.0f, 0.0f, new Color(136,72,62), 
            0.0f, 0.0f, new Color(0, 0, 64)
        );
        GradientPaint gp1 = new GradientPaint(
            0.0f, 0.0f,  new Color(64,252,13), 
            0.0f, 0.0f, new Color(0, 32, 0)
        );
        GradientPaint gp2 = new GradientPaint(
            0.0f, 0.0f, Color.blue, 
            0.0f, 0.0f, new Color(64, 0, 0)
        );
        GradientPaint gp3 = new GradientPaint(
                0.0f, 0.0f, Color.yellow, 
                0.0f, 0.0f, new Color(64, 0, 0)
        );
        GradientPaint gp4 = new GradientPaint(
                0.0f, 0.0f, Color.red, 
                0.0f, 0.0f, new Color(64, 0, 0)
        );
        renderer.setSeriesPaint(0, gp0);
        renderer.setSeriesPaint(1, gp1);
        renderer.setSeriesPaint(2, gp2);
        renderer.setSeriesPaint(3, gp3);
        renderer.setSeriesPaint(4, gp4);
        
        CategoryAxis domainAxis = plot.getDomainAxis();
        domainAxis.setCategoryLabelPositions(
                CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
            );
		ChartUtilities.writeChartAsJPEG(res.getOutputStream(), 1, chart, 800,
				300, null);
	}

	/**
	 * 获取一个演示用的简单数据集对象
	 * 
	 * @return
	 */
	

	private  DefaultCategoryDataset getDataSet00() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
 
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(100, "上海", "苹果");
		dataset.addValue(100, "广州", "苹果");
		dataset.addValue(200, "北京", "梨子");
		dataset.addValue(200, "上海", "梨子");
		dataset.addValue(200, "广州", "梨子");
		dataset.addValue(300, "北京", "葡萄");
		dataset.addValue(300, "上海", "葡萄");
		dataset.addValue(300, "广州", "葡萄");
		dataset.addValue(400, "北京", "香蕉");
		dataset.addValue(400, "上海", "香蕉");
		dataset.addValue(400, "广州", "香蕉");
		dataset.addValue(500, "北京", "荔枝");
		dataset.addValue(500, "上海", "荔枝");
		dataset.addValue(500, "广州", "荔枝");
		
		
		return dataset;
	}
	
	
	private  DefaultCategoryDataset getDataSet01(String catalog,StatDepartment[] stat) {
		DefaultCategoryDataset  dataset = new DefaultCategoryDataset ();
		
		
		//BusinessDaoImpl listImp = new  BusinessDaoImpl();
		//listImp.setSession(HibernateSessionFactory.getSession());
		//List listData = listImp.getCatalogStat(catalogId);
		for(int i=0;i<stat.length;i++){
			dataset.addValue(stat[i].total, "总人数", stat[i].getName());
			dataset.addValue(stat[i].getUpProbity(), "上半年", stat[i].getName());
			dataset.addValue(stat[i].getDownProbity(), "下半年", stat[i].getName());
		}
//		if(listData == null)
//		{
//			dataset.addValue(100, "北京", "苹果");
//			dataset.addValue(100, "上海", "苹果");
//			dataset.addValue(100, "广州", "苹果");
//			dataset.addValue(200, "北京", "梨子");
//			dataset.addValue(200, "上海", "梨子");
//			dataset.addValue(200, "广州", "梨子");
//			dataset.addValue(300, "北京", "葡萄");
//			dataset.addValue(300, "上海", "葡萄");
//			dataset.addValue(300, "广州", "葡萄");
//			dataset.addValue(400, "北京", "香蕉");
//			dataset.addValue(400, "上海", "香蕉");
//			dataset.addValue(400, "广州", "香蕉");
//			dataset.addValue(500, "北京", "荔枝");
//			dataset.addValue(500, "上海", "荔枝");
//			dataset.addValue(500, "广州", "荔枝");
//
//		}else
//		{
//			for(int i=0;i<listData.size();i++)
//			{
//				Stat st = (Stat)listData.get(i);
////				dataset.setValue(Double.parseDouble(st.getCol2()),"应办信息",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol3()),"按时完成",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol4()),"过期完成",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol5()),"未完成",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol6()),"过期未完成",st.getCol1());
//			}		
//			
//			
//		}
		
		return dataset;
	}
	
//	private  DefaultCategoryDataset getDataSet02(String startDate,String endDate) {
//		DefaultCategoryDataset  dataset = new DefaultCategoryDataset ();
//		
//		
//		
//		BusinessDaoImpl listImp = new  BusinessDaoImpl();
//		listImp.setSession(HibernateSessionFactory.getSession());
//		List listData = listImp.getStatTypes(startDate,endDate);
//		if(listData.size()==0)
//		{
//			dataset.addValue(100, "北京", "苹果");
//			dataset.addValue(100, "上海", "苹果");
//			dataset.addValue(100, "广州", "苹果");
//			dataset.addValue(200, "北京", "梨子");
//			dataset.addValue(200, "上海", "梨子");
//			dataset.addValue(200, "广州", "梨子");
//			dataset.addValue(300, "北京", "葡萄");
//			dataset.addValue(300, "上海", "葡萄");
//			dataset.addValue(300, "广州", "葡萄");
//			dataset.addValue(400, "北京", "香蕉");
//			dataset.addValue(400, "上海", "香蕉");
//			dataset.addValue(400, "广州", "香蕉");
//			dataset.addValue(500, "北京", "荔枝");
//			dataset.addValue(500, "上海", "荔枝");
//			dataset.addValue(500, "广州", "荔枝");
//
//		}else
//		{
//			for(int i=0;i<listData.size();i++)
//			{
//				Stat st = (Stat)listData.get(i);
////				dataset.setValue(Double.parseDouble(st.getCol2()),"应办信息",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol3()),"按时完成",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol4()),"过期完成",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol5()),"未完成",st.getCol1());
////				dataset.setValue(Double.parseDouble(st.getCol6()),"过期未完成",st.getCol1());
//			}		
//			
//			
//		}
//		
//		return dataset;
//	}
}

⌨️ 快捷键说明

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