📄 gzrzrztzchartbean.java
字号:
package gov.gdlt.ssgly.taxweb.mbean.gzrz;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.DefaultCategoryDataset;
import gov.gdlt.ssgly.taxcore.taxevent.gzrz.GZRZrwtzVO;
import org.jfree.chart.ChartUtilities;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.entity.StandardEntityCollection;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import org.jfree.chart.renderer.category.BarRenderer3D;
import java.awt.Color;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.chart.urls.StandardCategoryURLGenerator;
import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.axis.CategoryAxis3D;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.axis.NumberAxis3D;
import org.jfree.chart.labels.StandardCategoryLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.urls.StandardPieURLGenerator;
import org.jfree.chart.labels.StandardPieItemLabelGenerator;
import org.jfree.data.general.DefaultPieDataset;
public class GZRZrztzChartBean {
private DefaultCategoryDataset data = null;
private CategoryPlot plot = null;
public GZRZrztzChartBean(){
}
public String createImg(String title,HttpSession session,String numberAxisTitle,String categoryAxisTitle,List rztz)throws Exception{
bindValue(numberAxisTitle,categoryAxisTitle,rztz);
// JFreeChart chart = ChartFactory.createBarChart3D(title,
// "", "任务数", dataset, PlotOrientation.HORIZONTAL, true, true, false);
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, false);
chart.setBackgroundPaint(Color.WHITE);
//该工具在鼠标移动到图片时显示提示信息是用Map实现的,这些Map是用该类生成的
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
String filename = ServletUtilities.saveChartAsPNG(chart, 700, 300, info, session);
return filename;
}
private void bindValue(String numberAxisTitle,String categoryAxisTitle,List rztz){
//addValue(rztz);
ValueAxis valueAxis = new NumberAxis3D(numberAxisTitle);//创建坐标轴
CategoryAxis3D categoryAxis = new CategoryAxis3D(categoryAxisTitle);
BarRenderer3D renderer = new BarRenderer3D();
setRendererValue(renderer);
plot = new CategoryPlot(data, categoryAxis, valueAxis, renderer);//创建图表区域对象
}
public static String createPieImg(String title,HttpSession session,List rztz)throws Exception{
DefaultPieDataset dataset = new DefaultPieDataset();
addValue(rztz,dataset);
PiePlot3D plot = new PiePlot3D(dataset);//3D饼图
plot.setURLGenerator(new StandardPieURLGenerator("LogDetail1.jsp")); //设定链接
JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true);
chart.setBackgroundPaint(Color.white); //可选,设置图片背景色
plot.setToolTipGenerator(new StandardPieItemLabelGenerator());
StandardEntityCollection sec = new StandardEntityCollection();
ChartRenderingInfo info = new ChartRenderingInfo(sec);
//500是图片长度,300是图片高度
String filename = ServletUtilities.saveChartAsPNG(chart, 690, 400, info,session);
return filename;
}
private void setRendererValue(BarRenderer renderer){
renderer.setSeriesPaint(0, new Color(0, 100, 255));
//显示每个柱的数值,并修改该数值的字体属性
renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
//创建URLGenerator.再不需要连接的情况下将第一个参数设置成"###"就可以了
renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator("LogDetail1.jsp"));
renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());//创建提示标签
}
private static void addValue(List rztz,DefaultPieDataset dataset){
int drxzs = 0;
int drbjs = 0;
int rwzs = 0;
int jbzs = 0;
int wbzs = 0;
if(rztz != null && rztz.size()>0){
for(int i=0; i<rztz.size();i++){
GZRZrwtzVO vo = (GZRZrwtzVO)rztz.get(i);
if(vo.getDrxzs() != null && !vo.getDrxzs().trim().equals("")){
drxzs = Integer.parseInt(vo.getDrxzs());
}
if(vo.getDrbjs() != null && !vo.getDrbjs().trim().equals("")){
drbjs = Integer.parseInt(vo.getDrbjs());
}
if(vo.getRwzs() != null && !vo.getRwzs().trim().equals("")){
rwzs = Integer.parseInt(vo.getRwzs());
}
if(vo.getJbzs() != null && !vo.getJbzs().trim().equals("")){
jbzs = Integer.parseInt(vo.getJbzs());
}
if(vo.getWbzs() != null && !vo.getWbzs().trim().equals("")){
wbzs = Integer.parseInt(vo.getWbzs());
}
}
}
dataset.setValue("当期新增",drxzs);
dataset.setValue("当期(正常)办结",drbjs);
dataset.setValue("任务总数",rwzs);
dataset.setValue("已办总数",jbzs);
dataset.setValue("未办总数",wbzs);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -