显示曲线图数据点的数值,在程序中设置了相关属性却不显示,请高人指点是什么原因 @SuppressWarnings({ "unchecked" }) 
public ActionForward queryMonthMap(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response){ 
String mode = request.getParameter("mode"); 
HttpSession session = request.getSession(); 
String url = ""; 
try { 
if (mode == null || mode.equals("")) { 
F06_flux_business_timeForm bean = (F06_flux_business_timeForm) form; 
String endDate = bean.getEndDates(); 
String title = ""; 
String prodCatId = bean.getProdCatId(); title+="月统计图"; /** 获取月份天数* */ 
int yTime; 
int mTime; /** jFreeChart生成图片的名称和路径* */ 
String filename = null; 
String graphURL = null; TimeSeriesCollection dataset = new TimeSeriesCollection(); 
String name = "";       
for (int j = 1; j < 4; j++) { 
if (j == 1) {name = "通话时长(万分钟)";}  
else if (j == 2) {name = "通话费用(万元)"; 
} else if (j == 3) {name = "通话次数(万次)";} 
TimeSeries s1 = new TimeSeries(name,Month.class); 
List months=F06_flux_business_timeBusiness.getMonth(endDate); 
for (int i = 0; i < months.size(); i++) { 
double data=0; 
String date=(String)months.get(i); 
yTime=Integer.parseInt(date.substring(0, 4)); 
mTime=Integer.parseInt(date.substring(4)); 
bean.setEndDates(date); 
BusiFluxBusinessTimeVO vo =(BusiFluxBusinessTimeVO)            F06_flux_business_timeBusiness.queryMonthMap(bean); 
if(vo!=null&&!(vo.equals(""))){ 
      if (j == 1) { 
data = vo.getSumBillDuration(); //当前通话时长是指计费时长 
  } 
  else if (j == 2) {data = vo.getSumCallCost(); 
} else if (j == 3) {data = vo.getCallNumber();} 

s1.add(new TimeSeriesDataItem(new Month(mTime,yTime), data==0?null:data)); 

dataset.addSeries(s1); // JFreeChart 

dataset.setDomainIsPointsInTime(true); 
JFreeChart chart = ChartFactory.createTimeSeriesChart( 
title, // title 
"月份", // x-axis label 
"数值", // y-axis label 
dataset, // data 
true, // create legend? 
true, // generate tooltips? 
false // generate URLs? 
); XYPlot plot = (XYPlot) chart.getPlot(); 
plot.setBackgroundPaint(java.awt.Color.white); 
plot.setDomainGridlinePaint(java.awt.Color.lightGray); 
plot.setRangeGridlinePaint(java.awt.Color.lightGray); 
plot.setDomainCrosshairVisible(true); 
plot.setRangeCrosshairVisible(true);                               
      //设置曲线图显示的相关属性  
XYItemRenderer r = plot.getRenderer(); 
if (r instanceof XYLineAndShapeRenderer) { 
XYLineAndShapeRenderer  renderer= (XYLineAndShapeRenderer) r; 
renderer.setDefaultShapesVisible(true); 
renderer.setDefaultShapesFilled(true); 
//显示曲线点上的数值 
renderer.setItemLabelsVisible(true); 
renderer.setBaseItemLabelsVisible(true); 
DecimalFormat f1=new DecimalFormat("##"); 
renderer.setItemLabelGenerator(new StandardXYItemLabelGenerator("{2}",f1,f1)); 
renderer.setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); 
renderer.setItemLabelFont(new Font("Dialog", 1, 14)); 
plot.setRenderer(renderer); 

          } 
DateAxis axis = (DateAxis) plot.getDomainAxis(); 
axis.setDateFormatOverride(new SimpleDateFormat("yy-MM")); filename = ServletUtilities.saveChartAsPNG(chart, 780, 340, null, session); 
url = "map"; 
graphURL = request.getContextPath() 
+ "/servlet/DisplayChart?filename=" + filename; 
request.setAttribute("graphURL", graphURL); 
request.setAttribute("filename", filename); 
} else { 
String filename = request.getParameter("filename"); 
ServletUtilities.sendTempFile(filename, response); 

} catch (Exception e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
request.setAttribute("what", "服务器错误,请于管理员联系"); 
return mapping.findForward("what"); 

return mapping.findForward(url); 
}