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

📄 webchart.java

📁 Mapxtreme for java,相信搞GIS的朋友一定很迫切需要
💻 JAVA
字号:
package demo.chart;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardPieItemLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.PieDataset;

public class WebChart {
	
	private Font titleFont = new Font("黑体",Font.CENTER_BASELINE,18);
	private PieDataset piedata;
	
	public void setValue(PieDataset piedata) {
		this.piedata = piedata;
	}
	
	public String generatePieChart3D(String title,
			HttpSession session, 
			PrintWriter pw) {
		
		String filename = null;
		String unitSytle = "{0}={1}({2})";
		try {
			JFreeChart chart = ChartFactory.createPieChart3D("饼型图",  // chart title
								piedata,  // data
								true, // include legend
								true,
								false
								);
			//设置图片的背景色
			chart.setBackgroundPaint(new Color(215,215,215));
			
			//设置透明度,好像对servlet没有用
			chart.setBackgroundImageAlpha(0.5f);
			
			//设置图片标题的字体和大小
			TextTitle _title = new TextTitle(title);
			_title.setFont(titleFont);
			chart.setTitle(_title);			

			PiePlot plot = (PiePlot) chart.getPlot();			
			
			plot.setNoDataMessage("无对应的数据,请重新查询。");
			plot.setNoDataMessagePaint(Color.red);
			
			//指定 section 轮廓线的厚度(OutlinePaint不能为null)
			plot.setOutlineStroke(new BasicStroke(0));
			
			//设置第一个 section 的开始位置,默认是12点钟方向
			plot.setStartAngle(90);			

			plot.setToolTipGenerator(new StandardPieItemLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
			
			//指定图片的透明度
			plot.setForegroundAlpha(0.65f);
			
			//引出标签显示样式
			plot.setLabelGenerator(new StandardPieItemLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));
				
			//图例显示样式
			plot.setLegendLabelGenerator(new StandardPieItemLabelGenerator(unitSytle,
					NumberFormat.getNumberInstance(),
					new DecimalFormat("0.00%")));

			//把生成的图片放到临时目录
			ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
			
			//设置图片名称前缀
			ServletUtilities.setTempFilePrefix("chart-");
			
			//500是图片长度,300是图片高度
			filename = ServletUtilities.saveChartAsPNG(chart, 600, 350, info, session);

			ChartUtilities.writeImageMap(pw, filename, info, false);
			pw.flush();
			
			System.out.println(System.getProperty("java.io.tmpdir") + filename);

		} catch (Exception e) {
			System.out.println("Exception - " + e.toString());
			e.printStackTrace(System.out);
			filename = "public_error_600x350.png";
		}
		return filename;
	}
	
}

⌨️ 快捷键说明

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