首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

JfreeChart 表格 柱状图

2012-09-08 
JfreeChart 报表 柱状图今天闲来无事,看了点JfreeChart的中文教程。简单的柱状图。作为自己备忘。/** * 选项

JfreeChart 报表 柱状图
今天闲来无事,看了点JfreeChart的中文教程。简单的柱状图。作为自己备忘。

/** * 选项卡界面查询  * @return * @throws Exception */@Action(value = "cnindexquery", results = { @Result(location = "/page/userpercept/corenetwork/cnindexqueryMore.jsp") })public String cnindexquery() throws Exception {Map<String,String> dateMap=(Map<String,String>)session.get("dateMap");//查询表if(dateMap!=null){//无关代码略List<CnIndexCallCtrlData> list = ccDao.findCnIndexCallCtrlInfoByCondition(form);String title="核心网呼叫控制";String xName="时间范围";String yName="呼叫占用次数";DefaultCategoryDataset dataset = new DefaultCategoryDataset();for (CnIndexCallCtrlData cnIndexCallCtrlData : list) {dataset.addValue(cnIndexCallCtrlData.getSEIZE_COUNT(), "",cnIndexCallCtrlData.getSTARTTIME()+"~"+cnIndexCallCtrlData.getENDTIME());}JFreeChart chart = ChartFactory.createBarChart3D(title, // 图表标题xName, // 目录轴的显示标签yName, // 数值轴的显示标签dataset, // 数据集PlotOrientation.VERTICAL, // 图表方向:水平、垂直true, // 是否显示图例(对于简单的柱状图必须是false)false, // 是否生成工具false // 是否生成URL链接);chart=setChartCode(chart);//解决乱码String img=createImage(chart);//生成web报表System.out.println(img);request.put("img", img);}return ConstUtil.SUCCESS;}/** * 生成web报表 * @param chart * @return * @throws IOException */public String createImage(JFreeChart chart) throws IOException{HttpServletRequest req = (HttpServletRequest) (ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST));String filename = ServletUtilities.saveChartAsPNG(chart, 800, 500,null, req.getSession());ServletContext servlet = (ServletContext) (ActionContext.getContext().get(ServletActionContext.SERVLET_CONTEXT));return servlet.getContextPath() + "/servlet/DisplayChart?filename="+ filename;}/** * 解决乱码问题 * @param chart * @return */public JFreeChart setChartCode(JFreeChart chart){/*------解决了汉字乱码的问题-----------*/CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();  CategoryAxis domainAxis = categoryplot.getDomainAxis(); //设置标题的文字chart.getTitle().setFont(new Font("宋体", Font.PLAIN, 20));   //设置X轴坐标上的文字domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  //设置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));  //设置底部文字     chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));return chart;}

热点排行