|
From: Marcin G. <da...@to...> - 2003-06-25 22:01:49
|
Hi, I use jCharts 0.7.3
I get this:
23:40:56,045 ERROR [STDERR] java.lang.NullPointerException
23:40:56,055 ERROR [STDERR] at org.jCharts.axisChart.axis.XAxis.render(XAxis.java:406)
23:40:56,055 ERROR [STDERR] at org.jCharts.axisChart.AxisChart.renderChart(AxisChart.java:442)
23:40:56,055 ERROR [STDERR] at org.jCharts.Chart.render(Chart.java:169)
23:40:56,055 ERROR [STDERR] at org.jCharts.encoders.BinaryEncoderUtil.render(BinaryEncoderUtil.java:90)
23:40:56,065 ERROR [STDERR] at org.jCharts.encoders.PNGEncoder.encode(PNGEncoder.java:91)
23:40:56,085 ERROR [STDERR] at extranet.ChartServlet.performTask(ChartServlet.java:341)
The code from my ChartServlet that generates the chart is below,
What I am doing wrong?
regards
Marcin
===============
String[] xAxisLabels= { "I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII" };
out = response.getOutputStream();
java.util.ResourceBundle txts = java.util.ResourceBundle.getBundle("charts",new Locale(language));
String year = getParameter(request,"Year");
if (year == null) year="2002";
Collection v = user.getNumbersByYear(kid, new Long(year));
Iterator it = v.iterator();
double[][] data = new double[1][12];
for (int i=0; i<12; i++)
{
double d = ((Long)it.next()).doubleValue();
data[0][i] = d;
}
String xAxisTitle = fix(txts.getString("CHART1_XAXIS"));
String yAxisTitle = fix(txts.getString("CHART1_YAXIS"));
Object[] arg = { year };
String title = fix(MessageFormat.format(txts.getString("CHART1_TITLE"), arg));
DataSeries dataSeries = new DataSeries( xAxisLabels, xAxisTitle, yAxisTitle, title );
String[] legendLabels = { fix(txts.getString("CHART1_LEGEND")) };
Paint[] paints={ new GradientPaint(0,0,new Color(255,213,83,150),0,350,new Color(243,116,0,200)) };
BarChartProperties barChartProperties = new BarChartProperties();
ValueLabelRenderer valueLabelRenderer = new ValueLabelRenderer( false, false, false, -1 );
valueLabelRenderer.setValueLabelPosition( ValueLabelPosition.ON_TOP );
valueLabelRenderer.useVerticalLabels(false);
barChartProperties.addPostRenderEventListener( valueLabelRenderer );
AxisChartDataSet axisChartDataSet = new AxisChartDataSet(data, legendLabels, paints, ChartType.BAR, barChartProperties);
dataSeries.addIAxisPlotDataSet(axisChartDataSet);
ChartProperties chartProperties = new ChartProperties();
DataAxisProperties xAxisProperties = new DataAxisProperties();
xAxisProperties.setAxisTitleChartFont(ft_axis);
xAxisProperties.setScaleChartFont(ft_labels);
DataAxisProperties yAxisProperties = new DataAxisProperties();
yAxisProperties.setAxisTitleChartFont(ft_axis);
yAxisProperties.setScaleChartFont(ft_labels);
yAxisProperties.setRoundToNearest(0);
AxisProperties axisProperties = new AxisProperties(xAxisProperties, yAxisProperties);
LegendProperties legendProperties = new LegendProperties();
chartProperties.setTitleFont(ft_title);
legendProperties.setFont(ft_base_);
axisProperties.setBackgroundPaint(new GradientPaint(0,0,new Color(255,255,255),0,300,new Color(167,213,255)));
AxisChart axisChart= new AxisChart(
dataSeries,
chartProperties,
axisProperties,
null, //legendProperties,
548, 350 ); // wymiary wykresu
response.setContentType("image/png");
PNGEncoder.encode(axisChart, out);
|