1. 3个jar包
jcommon,jfreechart,strust2-jfreechart-plugin
2
1 2 34 5 126 117 400 8 300 9 10
3.
1 package com.goshop.action; 2 3 import java.awt.Font; 4 import java.util.List; 5 6 import javax.annotation.Resource; 7 8 import org.jfree.chart.ChartFactory; 9 import org.jfree.chart.JFreeChart;10 import org.jfree.chart.axis.CategoryAxis;11 import org.jfree.chart.axis.NumberAxis;12 import org.jfree.chart.plot.CategoryPlot;13 import org.jfree.chart.plot.PlotOrientation;14 import org.jfree.data.category.DefaultCategoryDataset;15 import org.springframework.stereotype.Controller;16 17 import com.goshop.domain.VoteOption;18 import com.goshop.service.IVoteOptionService;19 import com.opensymphony.xwork2.ActionSupport;20 21 @Controller22 public class ShowResultAction extends ActionSupport {23 24 private int voteID;25 private int channelID;26 27 public int getVoteID() {28 return voteID;29 }30 31 public void setVoteID(int voteID) {32 this.voteID = voteID;33 }34 35 public int getChannelID() {36 return channelID;37 }38 39 public void setChannelID(int channelID) {40 this.channelID = channelID;41 }42 43 @Resource44 private IVoteOptionService optionService;45 private JFreeChart chart;46 47 public void setChart(JFreeChart chart) {48 this.chart = chart;49 }50 public JFreeChart getChart(){51 52 ListvoteOptionList = optionService53 .selectVoteOptionsByVoteId(voteID);54 DefaultCategoryDataset ds = new DefaultCategoryDataset();55 for (VoteOption option : voteOptionList) {56 ds.addValue(option.getTicketNum(), option.getVoteOptionName(), "");57 }58 JFreeChart chart = ChartFactory.createBarChart("球星投票结果", "投票选项", "投票数",59 ds, PlotOrientation.VERTICAL, true, false, false);60 CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();61 NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();62 CategoryAxis domainAxis = categoryplot.getDomainAxis();63 64 /*------设置X轴坐标上的文字-----------*/65 domainAxis.setLabelFont(new Font("sans-serif", Font.PLAIN, 11));66 /*------设置X轴的标题文字------------*/67 domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));68 /*------设置Y轴坐标上的文字-----------*/69 numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));70 /*------设置Y轴的标题文字------------*/71 numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));72 73 /*------这句代码解决了底部汉字乱码的问题-----------*/74 chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));75 /******* 这句代码解决了标题汉字乱码的问题 ********/76 /******* 这句代码解决了标题汉字乱码的问题 ********/77 chart.getTitle().setFont(new Font("宋体", Font.PLAIN, 12));78 79 return chart;80 }81 82 public String execute() throws Exception {83 return "success";84 }85 }