67,512
社区成员
发帖
与我相关
我的任务
分享
package com.jfc.servlet;
import java.awt.Font;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.data.jdbc.JDBCPieDataset;
/**
* Servlet implementation class for Servlet: PieByServlet
*
*/
public class PieByServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public PieByServlet() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setCharacterEncoding("gbk");
response.setContentType("image/jpeg");
PieDataset pd = getDataset();
JFreeChart jfc = ChartFactory.createPieChart3D("chart标题", pd, true, true, false);
//乱码解决部分
TextTitle textTitle = jfc.getTitle();
textTitle.setFont(new Font("宋体",Font.PLAIN,20));
PiePlot plot = (PiePlot) jfc.getPlot();
plot.setLabelFont(new Font("宋体",Font.BOLD,20));
jfc.getLegend().setItemFont(new Font("宋体",Font.PLAIN,12));
//
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),0.5f,jfc,800,600,null);
}
private PieDataset getDataset() {
// TODO Auto-generated method stub
Connection con = null;
JDBCPieDataset dataset = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://127.0.0.1:3306/xb1?user=root&password=sa";
con = DriverManager.getConnection(url);
String query = "select name,score from student";
dataset = new JDBCPieDataset(con);
dataset.executeQuery(query);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
}
return dataset;
}
}
package com.jfc.xb1;
import java.awt.Font;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChartDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D("标题", "目录轴标签", "数值轴标签", dataset, PlotOrientation.HORIZONTAL, true, false, false);
//ChartFactory.createBarChart3D(标题,目录轴标签,数值轴标签,数据集,图表方向,是否显示图例,是否生成工具,是否生成URL链接)
//进行乱码处理
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体",Font.PLAIN,20));
CategoryPlot plot = chart.getCategoryPlot();
//domainAxis为柱状图中的X轴
CategoryAxis domainAxis = plot.getDomainAxis();
//x轴标题上的字体
domainAxis.setLabelFont(new Font("宋体",Font.PLAIN,20));
//X轴坐标上的字体
domainAxis.setTickLabelFont(new Font("宋体",Font.PLAIN,20));
//处理y轴字体
ValueAxis valueAxis = plot.getRangeAxis();
valueAxis.setLabelFont(new Font("宋体",Font.PLAIN,20));
valueAxis.setTickLabelFont(new Font("宋体",Font.PLAIN,20));
plot.setNoDataMessageFont(new Font("宋体",Font.PLAIN,20));
chart.getLegend().setItemFont(new Font("宋体",Font.PLAIN,20));
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("F:\\BarChartDemo.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg, 0.5f, chart, 400, 300, null);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try{
fos_jpg.close();
}catch(Exception e){
}
}
}
//获取一个组合型数据集对象
private static CategoryDataset getDataSet2(){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(100, "上海", "苹果");
dataset.addValue(200, "北京", "栗子");
dataset.addValue(200, "上海", "栗子");
dataset.addValue(300, "北京", "葡萄");
dataset.addValue(300, "上海", "葡萄");
dataset.addValue(400, "北京", "西瓜");
dataset.addValue(400, "上海", "西瓜");
dataset.addValue(500, "北京", "香蕉");
dataset.addValue(500, "上海", "香蕉");
return dataset;
}
}