• jfc在jsp页面画图,不将图片存在服务器端,只存入会话session(可用)


    jfc在jsp页面画图,不将图片存在服务器端,只存入会话session。其中主要用到jfc的一个servlet类。

    <%@ page contentType="text/html;charset=gb2312" errorPage="../common/error.jsp" %>
    <%@ page import="dqz.jsp.*" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.*" %>
    <%@ page import="javax.naming.*" %>
    <%@ include file="../common/config.jsp"%>
    <%@ include file="reporter_session.jsp"%>
    <%@ page import="
    	        org.jfree.chart.servlet.ServletUtilities,    
    	        java.awt.Font,
    	        java.awt.Color, 
    					org.jfree.chart.ChartFactory,  
    					org.jfree.chart.ChartFrame,  
    					org.jfree.chart.JFreeChart,  
    					org.jfree.chart.StandardChartTheme,  
    				  org.jfree.chart.plot.CategoryPlot,  
    					org.jfree.chart.plot.PlotOrientation,  
    					org.jfree.data.category.CategoryDataset,  
    					org.jfree.data.category.DefaultCategoryDataset,
    					org.jfree.chart.ChartUtilities,
    					org.jfree.chart.axis.CategoryAxis,
    					org.jfree.chart.axis.NumberAxis,
    					org.jfree.chart.axis.ValueAxis,
    					org.jfree.chart.labels.StandardCategoryItemLabelGenerator,
    					org.jfree.chart.renderer.category.BarRenderer,
    					org.jfree.chart.title.TextTitle, java.io.FileOutputStream,
    					java.io.IOException, java.io.PrintWriter,
    						java.util.ArrayList, java.util.HashMap, java.util.List,
    						java.util.Map,
    						java.text.DecimalFormat,  			              
    						java.text.NumberFormat,
    						java.io.FileOutputStream,
    						java.io.IOException,
    						java.io.PrintWriter,
    						java.sql.Connection,
    						java.sql.DriverManager,
    						java.sql.PreparedStatement,
    						java.sql.ResultSet,
    						java.sql.SQLException,
    						java.util.ArrayList,
    						java.util.List,
    						org.jfree.chart.servlet.ServletUtilities,  
    						java.util.Map,
    						org.jfree.chart.labels.StandardPieSectionLabelGenerator,
    						org.jfree.chart.labels.StandardPieToolTipGenerator,
    						org.jfree.chart.plot.PiePlot3D,
    						org.jfree.data.general.DefaultPieDataset,
    						org.jfree.data.general.PieDataset,
                org.jfree.chart.title.LegendTitle 
    
    "%>
    
    //===========================直方图测试开始===================================================
    					DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    					dataset.addValue(610, "广州", "猪肉");
    					dataset.addValue(220, "广州", "牛肉");
    					dataset.addValue(530, "广州", "鸡肉");
    					dataset.addValue(340, "广州", "鱼肉");
    					
    					JFreeChart mBarChart = ChartFactory.createBarChart3D("肉类销量统计图",
    					"肉类",
    					"销量",
    					dataset,
    					PlotOrientation.VERTICAL,
    					false,
    					false,
    					false);	
    	
    		        //图表标题设置  
    	        TextTitle mTextTitle = mBarChart.getTitle();  
    	        mTextTitle.setFont(new Font("黑体", Font.BOLD, 20));  
    	        //mBarChart.setTitle(new TextTitle("学校人员分布图",new Font("黑体", Font.BOLD, 20)));  
    	        //图表图例设置  
    	        LegendTitle mLegend = mBarChart.getLegend();  
    	        if(mLegend != null)  
    	            mLegend.setItemFont(new Font("宋体", Font.CENTER_BASELINE, 15));  
    	        //mBarChart.getLegend().setItemFont(new Font("宋体", Font.CENTER_BASELINE, 15));  
    	        //设置柱状图轴  
    	        CategoryPlot mPlot = (CategoryPlot)mBarChart.getPlot();  
    	          
    	        //x轴  
    	        CategoryAxis mDomainAxis = mPlot.getDomainAxis();  
    	        //设置x轴标题的字体  
    	        mDomainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));  
    	        //设置x轴坐标字体  
    	        mDomainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));  
    	        //y轴  
    	        ValueAxis mValueAxis = mPlot.getRangeAxis();  
    	        //设置y轴标题字体  
    	        mValueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));  
    	        //设置y轴坐标字体  
    	        mValueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));  
    	        //柱体显示数值  
    	        BarRenderer mRenderer= new BarRenderer();  
    	        mRenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());  
    	        mRenderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 10));  
    	        mRenderer.setItemLabelsVisible(true);  
    	        mPlot.setRenderer(mRenderer);  
    	
    			String filename = ServletUtilities.saveChartAsPNG(mBarChart, 800, 400, null, session);
    			String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
    			
    //===========================直方图测试结束===================================================
    
    //===========================饼图测试开始===================================================
    
    			 //设置数据源  
            DefaultPieDataset mpieDataset = new DefaultPieDataset();         
            mpieDataset.setValue(" 市场前期", new Double(10));   
            mpieDataset.setValue(" 立项", new Double(15));   
            mpieDataset.setValue(" 计划", new Double(20));   
            mpieDataset.setValue(" 需求与设计", new Double(10));   
            mpieDataset.setValue(" 执行控制", new Double(25));   
            mpieDataset.setValue(" 收尾", new Double(10));   
            mpieDataset.setValue(" 运维",new Double(10)); 
            
            //建立图表  
            JFreeChart mpieChart = ChartFactory.createPieChart3D("项目进度分布", mpieDataset, true, true, false);  
            //设置图表标题  
            mpieChart.setTitle(new TextTitle("项目状态分布", new Font("黑体",Font.CENTER_BASELINE, 20)));  
            //设置Legend字体  
            mpieChart.getLegend().setItemFont(new Font("宋体", Font.ROMAN_BASELINE, 15));  
              
            PiePlot3D mPiePlot = (PiePlot3D)mpieChart.getPlot();  
            //以默认方式显示百分比  
            //mPiePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));  
            // 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位  
            mPiePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));  
            // 底部图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例   
            mPiePlot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));  
            //设置饼图标签字体  
            mPiePlot.setLabelFont(new Font("宋体", Font.PLAIN, 15));  
            
            String piefilename = ServletUtilities.saveChartAsPNG(mpieChart, 800, 400, null, session);
    		    String piegraphURL = request.getContextPath() + "/DisplayChart?filename=" + piefilename;
    //===========================饼图测试结束===================================================
    
    //===========================折线图测试开始===================================================
    			
    			  	StandardChartTheme mChartThemezxt = new StandardChartTheme("CN");  
    	        mChartThemezxt.setLargeFont(new Font("黑体", Font.BOLD, 20));  
    	        mChartThemezxt.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15));  
    	        mChartThemezxt.setRegularFont(new Font("宋体", Font.PLAIN, 15));  
    	        ChartFactory.setChartTheme(mChartThemezxt); 
    	         
    	   // row keys... 
           String series1 = "First"; 
           String series2 = "Second"; 
           String series3 = "Third"; 
    
           // column keys... 
           String type1 = "Type 1"; 
           String type2 = "Type 2"; 
           String type3 = "Type 3"; 
           String type4 = "Type 4"; 
           String type5 = "Type 5"; 
           String type6 = "Type 6"; 
           String type7 = "Type 7"; 
           String type8 = "Type 8"; 
    
           // create the dataset... 
           DefaultCategoryDataset dataset_zxt = new DefaultCategoryDataset(); 
    
           dataset_zxt.addValue(1.0, series1, type1); 
           dataset_zxt.addValue(4.0, series1, type2); 
           dataset_zxt.addValue(3.0, series1, type3); 
           dataset_zxt.addValue(5.0, series1, type4); 
           dataset_zxt.addValue(5.0, series1, type5); 
           dataset_zxt.addValue(7.0, series1, type6); 
           dataset_zxt.addValue(7.0, series1, type7); 
           dataset_zxt.addValue(0.0, series1, type8); 
    
           dataset_zxt.addValue(5.0, series2, type1); 
           dataset_zxt.addValue(7.0, series2, type2); 
           dataset_zxt.addValue(6.0, series2, type3); 
           dataset_zxt.addValue(8.0, series2, type4); 
           dataset_zxt.addValue(4.0, series2, type5); 
           dataset_zxt.addValue(4.0, series2, type6); 
           dataset_zxt.addValue(2.0, series2, type7); 
           dataset_zxt.addValue(1.0, series2, type8); 
    
           dataset_zxt.addValue(4.0, series3, type1); 
           dataset_zxt.addValue(3.0, series3, type2); 
           dataset_zxt.addValue(2.0, series3, type3); 
           dataset_zxt.addValue(3.0, series3, type4); 
           dataset_zxt.addValue(6.0, series3, type5); 
           dataset_zxt.addValue(3.0, series3, type6); 
           dataset_zxt.addValue(4.0, series3, type7); 
           dataset_zxt.addValue(3.0, series3, type8);    
    	       
    	        
    	         JFreeChart mzxtChart = ChartFactory.createLineChart(  
    	                "折线图",  
    	                "时间",  
    	                "数量",  
    	                dataset_zxt,  
    	                PlotOrientation.VERTICAL,  
    	                true,   
    	                true,   
    	                false);  
    	          
    	        CategoryPlot mzxtPlot = (CategoryPlot)mzxtChart.getPlot();  
    	        mzxtPlot.setBackgroundPaint(Color.LIGHT_GRAY);  
    	        mzxtPlot.setRangeGridlinePaint(Color.BLUE);//背景底部横虚线  
    	        mzxtPlot.setOutlinePaint(Color.RED);//边界线  
              mzxtChart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));//图列
             
             CategoryAxis mzxtdomainAxis = mzxtPlot.getDomainAxis(); //X坐标 
    		     mzxtdomainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  //X
    		     mzxtdomainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));  
            
    	    	ValueAxis mzxtValueAxis = mzxtPlot.getRangeAxis(); 
    	    	mzxtValueAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));  //Y
    	    	mzxtValueAxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));  
    		
       		  TextTitle zxttextTitle = mzxtChart.getTitle();//坐标标题设置
       		  zxttextTitle.setFont(new Font("黑体", Font.PLAIN, 20));      
            
            String zxtfilename = ServletUtilities.saveChartAsPNG(mzxtChart, 800, 400, null, session);
    		    String zxtgraphURL = request.getContextPath() + "/DisplayChart?filename=" + zxtfilename;
    //===========================折线图测试结束===================================================
    			 
            
            
    %>
    
    <img src="<%= graphURL %>" width=800 height=400 border=0 usemap="#<%= filename %>">
    <br/>
    <img src="<%= piegraphURL %>" width=800 height=400 border=0 usemap="#<%= piefilename %>">
    <br/>
    <img src="<%= zxtgraphURL %>" width=800 height=400 border=0 usemap="#<%= zxtfilename %>">
    

      

  • 相关阅读:
    【转】jenkins更新主题
    【原】jenkins常用的plugin
    作业:简单的主机批量管理工具
    信号量, 事件,队列
    paramiko模块介绍
    多线程介绍
    作业:开发支持多用户在线FTP程序
    判断操作系统的三种方法
    socketserver
    新博客地址
  • 原文地址:https://www.cnblogs.com/yuhuameng/p/3987879.html
Copyright © 2020-2023  润新知