|
From: Jiang, X. <jon...@pi...> - 2005-01-07 22:50:48
|
Hi,
I just switched from jCharts.0.7.5 to krysalis-jCharts-1.0.0-alpha-1. My ap=
p builds fine, but got a run-time error as follows:
Warning: legend shape is null
java.lang.NullPointerException
at org.krysalis.jcharts.Legend.calculateDrawingValues(Unknown Sourc=
e)
at org.krysalis.jcharts.Legend.computeLegendXY(Unknown Source)
at org.krysalis.jcharts.axisChart.AxisChart.renderChart(Unknown Sou=
rce)
at org.krysalis.jcharts.Chart.render(Unknown Source)
...
I didn't make any change to my source code. What else should I do?=20
Here's my source code:
/**
* Plot the time series data as line chart.=20
*/
public int plot() throws ChartDataException, PropertyException {
...
String xAxisTitle=3D null, yAxisTitle=3D null;
dataSeries =3D new DataSeries( xAxisLabels, xAxisTitle, yAxisTitle,=
getChartTitle() );
LineChartProperties lineChartProperties=3D new LineChartProperties(=
strokes, shapes );
AxisChartDataSet axisChartDataSet =3D new AxisChartDataSet(data,leg=
endLabels,paints,ChartType.LINE,lineChartProperties);
dataSeries.addIAxisPlotDataSet(axisChartDataSet);
chartProperties=3D new ChartProperties();
axisProperties=3D new AxisProperties();
legendProperties=3D new LegendProperties();
ChartStroke xAxisGridLines=3D new ChartStroke( new BasicStroke( 1.0=
f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,1f,new float[] {2f},0f ),Col=
or.lightGray);
axisProperties.getXAxisProperties().setGridLineChartStroke( xAxisGr=
idLines );
axisProperties.getXAxisProperties().setShowGridLines( AxisTypePrope=
rties.GRID_LINES_ONLY_WITH_LABELS );
DataAxisProperties yAxis =3D (DataAxisProperties) axisProperties.ge=
tYAxisProperties();
yAxis.setGridLineChartStroke( xAxisGridLines );
yAxis.setShowGridLines( AxisTypeProperties.GRID_LINES_ONLY_WITH_LAB=
ELS );
yAxis.setNumItems(yNumItems);
yAxis.setRoundToNearest(roundToNearest);
UserDefinedScaleCalculator u=3D new UserDefinedScaleCalculator(yMin=
, yIncrement);
yAxis.setScaleCalculator( u );
yAxisMinWidth =3D getYLabelMinWidth(yAxis);
//repaint();
return PTError.PMPT_ERROR_SUCCESS;
}
public void paint(Graphics g) {
Graphics plotGraphics =3D g.create(yAxisOffset,0,dim.width-yAxi=
sOffset,dim.height);
try {
Graphics2D g2d =3D (Graphics2D) plotGraphics;
AxisChart axisChart=3D new AxisChart(dataSeries,=20
chartProperties,=20
axisProperties,=20
legendProperties, dim.wi=
dth-yAxisOffset, dim.height ); =20
axisChart.setGraphics2D(g2d);
axisChart.render();
}
catch( ChartDataException chartDataException )
{
chartDataException.printStackTrace();
}
catch( PropertyException propertyException ) {
propertyException.printStackTrace();
}
}
This message contains confidential information and is intended only for the=
individual named. If you are not the named addressee, you should not disse=
minate, distribute, alter or copy this e-mail. Please notify the sender imm=
ediately by e-mail if you have received this e-mail by mistake and delete t=
his e-mail from your system. E-mail transmissions cannot be guaranteed to b=
e secure or without error as information could be intercepted, corrupted, l=
ost, destroyed, arrive late or incomplete, or=20
contain viruses. The sender, therefore, does not accept liability for any e=
rrors or omissions in the contents of this message which arise during or as=
a result of e-mail transmission. If verification is required, please reque=
st a hard-copy version. This message is provided for information purposes a=
nd should not be construed as a solicitation or offer to buy or sell any se=
curities or related financial instruments in any jurisdiction.
|