您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > Struts2.0第五讲
Struts2.0整合JFreeChart--项目实训韩海鹏hhphzr@hotmail.comJFreeChart介绍•JFreeChart是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:1、JFreeReport:报表解决工具2、JFreeChart:Java图形解决方案(Application/Applet/Servlet/Jsp)3、JCommon:JFreeReport和JFreeChart的公共类库4、JFreeDesigner:JFreeReport的报表设计工具JFreeChart功能介绍•JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:piecharts(2Dand3D):饼图(平面和立体)barcharts(regularandstacked,withanoptional3Deffect):柱状图lineandareacharts:曲线图scatterplotsandbubblechartstimeseries,high/low/open/closechartsandcandlestickcharts:时序图combinationcharts:复合图ParetochartsGanttcharts:甘特图第一个图表•publicclassJFreeChartText{•publicstaticvoidmain(String[]args){DefaultPieDatasetdpd=newDefaultPieDataset();dpd.setValue(“管理人员”,25);dpd.setValue(“市场人员”,15);dpd.setValue(“教学人员,45);dpd.setValue(其他人员,15);JFreeChartchart=ChartFactory.createPieChart3D(“CSTP,dpd,true,true,false);ChartFramechartFrame=newChartFrame(组织结构图,chart);chartFrame.pack();chartFrame.setVisible(true);}}•publicclassPieChartDemo•{•publicstaticvoidmain(String[]args)throwsIOException•{•DefaultPieDatasetdata=getDataSet();•//JFreeChartchart=ChartFactory.createPieChart(•//生成3D饼图•JFreeChartchart=ChartFactory.createPieChart3D(•图书销量统计图,//图表标题•getDataSet(),//数据•true,//是否显示图例•false,//是否显示工具提示•false//是否生成URL•)•//重新设置图标标题,改变字体•chart.setTitle(newTextTitle(图书销量统计图,newFont(黑体,Font.ITALIC,22)));•//取得统计图标的第一个图例•LegendTitlelegend=chart.getLegend(0);•//修改图例的字体•legend.setItemFont(newFont(宋体,Font.BOLD,14));•//获得饼图的Plot对象•PiePlotplot=(PiePlot)chart.getPlot();•//设置饼图各部分的标签字体•plot.setLabelFont(newFont(隶书,Font.BOLD,18));•//设定背景透明度(0-1.0之间)•plot.setBackgroundAlpha(0.9f);•//设定前景透明度(0-1.0之间)•plot.setForegroundAlpha(0.50f);•FileOutputStreamfos=newFileOutputStream(book.jpg);•ChartUtilities.writeChartAsJPEG(•fos,//输出到哪个输出流•1,//JPEG图片的质量,0~1之间•chart,//统计图标对象•800,//宽•600,//宽•null//ChartRenderingInfo信息•);•fos.close();•}•privatestaticDefaultPieDatasetgetDataSet()•{•DefaultPieDatasetdataset=newDefaultPieDataset();•dataset.setValue(J2ME嵌入式开发,47000);•dataset.setValue(J2EEweb应用开发,38000);•dataset.setValue(基于J2EE的Ajax开发,31000);•dataset.setValue(JavaScript权威指南,29000);•dataset.setValue(J2SE应用开发,25000);•returndataset;•}•}•publicclassLineChartDemo•{•publicstaticvoidmain(String[]args)throwsIOException•{•JFreeChartchart=ChartFactory.createTimeSeriesChart(•水果销量统计图,//图表标题•水果,//目录轴的显示标签•销量,//数值轴的显示标签•getDataSet(),//数据集•//PlotOrientation.HORIZONTAL,//图表方向:水平•//PlotOrientation.VERTICAL,//图表方向:垂直•true,//是否显示图例(对于简单的柱状图必须是false)•false,//是否生成工具•false//是否生成URL链接•);•//重新设置图标标题,改变字体•chart.setTitle(newTextTitle(水果销量统计图,newFont(黑体,Font.ITALIC,22)));•//取得统计图标的第一个图例•LegendTitlelegend=chart.getLegend(0);•//修改图例的字体•legend.setItemFont(newFont(宋体,Font.BOLD,14));•XYPlotplot=(XYPlot)chart.getPlot();•//取得横轴•ValueAxiscategoryAxis=plot.getDomainAxis();•//设置横轴显示标签的字体•categoryAxis.setLabelFont(newFont(宋体,Font.BOLD,22));•categoryAxis.setTickLabelFont(newFont(宋体,Font.BOLD,18));•//取得纵轴•NumberAxisnumberAxis=(NumberAxis)plot.getRangeAxis();•//设置纵轴显示标签的字体•numberAxis.setLabelFont(newFont(宋体,Font.BOLD,22));•FileOutputStreamfos=null;•fos=newFileOutputStream(fruitLine.jpg);•//将统计图标输出成JPG文件•ChartUtilities.writeChartAsJPEG(•fos,//输出到哪个输出流•1,//JPEG图片的质量,0~1之间•chart,//统计图标对象•800,//宽•600,//宽•null//ChartRenderingInfo信息•);•fos.close();•}•//返回一个CategoryDataset实例•privatestaticXYDatasetgetDataSet()•{•TimeSeriesapple=newTimeSeries(苹果,Month.class);•apple.add(newMonth(10,2007),3900);•apple.add(newMonth(11,2007),900);•apple.add(newMonth(12,2007),2500);•apple.add(newMonth(1,2008),3900);•apple.add(newMonth(2,2008),2000);•apple.add(newMonth(3,2008),3300);•TimeSeriesorange=newTimeSeries(桔子,Month.class);•orange.add(newMonth(10,2007),3300);•orange.add(newMonth(11,2007),2680);•orange.add(newMonth(12,2007),2000);•orange.add(newMonth(1,2008),1900);•orange.add(newMonth(2,2008),2000);•orange.add(newMonth(3,2008),2300);••TimeSeriesCollectiondataset=newTimeSeriesCollection();•dataset.addSeries(apple);•dataset.addSeries(orange);•returndataset;•}•}配置struts2•packagename=jCuckooextends=jfreechart-default//此处需要注意•actionname=bookChartclass=jCuckoo.ChartAction•resulttype=chart•paramname=width600/param•paramname=height450/param•/result•/action•actionname=barChart3Dtclass=jCuckoo.BarChart3DAction•resulttype=chart•paramname=width600/param•paramname=height450/param•/result•/action•/packageChartAction•publicclassChartActionextendsActionSupport{•privateJFreeChartchart;•publicJFreeChartgetChart()•{•chart=ChartFactory.createPieChart3D(•图书销量统计图,//图表标题•getDataSet(),//数据•true,//是否显示图例•false,//是否显示工具提示•false//是否生成URL•);•//重新设置图标标题,改变字体•chart.setTitle(newTextTitle(图书销量统计图,newFont(黑体,Font.ITALIC,22)));•//取得统计图标的第一个图例•LegendTitlelegend=chart.getLegend(0);•//修改图例的字体•legend.setItemFont(newFont(宋体,Font.BOLD,14));•//获得饼图的Plot对象•PiePlotplot=(PiePlot)chart.getPlot();•//设置饼图各部分的标签字体•plot.setLabelFont(newFont(隶书,Font.BOLD,18));•//设定背景透明度(0-1.0之间)•plot.setBackgroundAlpha(0.9f);•//设定前景透明度(0-1.0之间)•plot.setForegroundAlpha(0.50f);•returnchart;•}•privateDefaultPieDatasetgetDataSet
本文标题:Struts2.0第五讲
链接地址:https://www.777doc.com/doc-3364152 .html