?? chartservlet.java
字號:
package cn.hxex.vote.servlet;
import java.io.IOException;
import java.util.Iterator;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import cn.hxex.vote.dao.IVoteDAO;
import cn.hxex.vote.model.Vote;
import cn.hxex.vote.model.VoteItem;
import cn.hxex.vote.util.DAOFactory;
public class ChartServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
IVoteDAO dao = DAOFactory.getVoteDAO();
Vote vote = dao.getVote(id);
/*獲得JFreeChart對象的實例*/
JFreeChart chart = getChart(vote);
/*設置輸出對象的類型*/
response.setContentType("image/jpeg");
/*輸出圖形*/
ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 100,
chart, 400, 300, null);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public static JFreeChart getChart(Vote vote) {
JFreeChart chart = null;
/*判斷是否是餅圖*/
if (vote.getPicType().indexOf("PIE") == 0) {
/*生成餅圖的數據*/
DefaultPieDataset data = new DefaultPieDataset();
Iterator it = vote.getVoteItems().iterator();
while (it.hasNext()) {
VoteItem vi = (VoteItem)it.next();
data.setValue(vi.getTitle(), vi.getVoteNum());
}
/*判斷是否是普通餅圖*/
if (vote.getPicType().equals("PIE")) {
chart = ChartFactory.createPieChart(vote.getTitle(),
data, false, false, false);
}
else {
//3D餅圖
chart = ChartFactory.createPieChart3D(vote.getTitle(),
data, false, false, false);
}
}
else {
/*生成柱狀圖的數據*/
DefaultCategoryDataset data = new DefaultCategoryDataset();
Iterator it = vote.getVoteItems().iterator();
while (it.hasNext()) {
VoteItem vi = (VoteItem)it.next();
data.setValue(vi.getVoteNum(), "選項", vi.getTitle());
}
/*判斷是否是普通柱狀圖*/
if (vote.getPicType().equals("BAR")) {
chart = ChartFactory.createBarChart(vote.getTitle(),
"選項", "數量", data, PlotOrientation.VERTICAL,
false, false, false);
}
else {
//3D柱狀圖
chart = ChartFactory.createBarChart3D(vote.getTitle(),
"選項", "數量", data, PlotOrientation.VERTICAL,
false, false, false);
}
}
return chart;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -