Need Help with MyLittleRadar

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
Jeff Gardner
Posts: 10
Joined: Sun Dec 28, 2003 5:38 pm

Need Help with MyLittleRadar

Post by Jeff Gardner » Sun Dec 28, 2003 5:53 pm

Hello

I'm compiling and running MyLittleRadar. I'm using JfreeChart .0.9.15

I get the following error:
java.lang.NullPointerException

at org.jfree.chart.ChartUtilities.writeBufferedImageAsPNG(Unknown Source)

at com.segieth.charts.RadarChart.writeImage(RadarChart.java:40)

at com.segieth.charts.RadarChart.getJLabel(RadarChart.java:52)

at com.segieth.charts.RadarChart.quickView(RadarChart.java:62)

at com.segieth.charts.RadarChart.main(RadarChart.java:172)

Is there something that needs to be changed? I'm not sure what it is.
Thanks
- Jeff

Here is the listing that I'm using.

package com.segieth.charts;

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.image.BufferedImage;
import java.io.OutputStream;
import java.util.Map;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.Plot;
import org.jfree.data.CategoryDataset;
import org.jfree.data.Dataset;
import org.jfree.data.DefaultCategoryDataset;
import org.jfree.data.DefaultKeyedValues;
import org.jfree.data.DefaultPieDataset;
import org.jfree.data.PieDataset;
/**
* @author <a href="mailto:frank@segieth.com">Frank Segieth</a>
* created 07.03.2003
*/
public class RadarChart{
protected int getHeight(){return 400;}

protected int getWidth(){return 600;}


public void writeImage(OutputStream out){
try
{
// wenn man wirklich nix sehen will unkommentieren
if (image == null)
{
image = chart.createBufferedImage(getWidth(),getHeight());
}
ChartUtilities.writeBufferedImageAsPNG(out,image);
//ChartUtilities.writeBufferedImageAsJPEG(out,image);
}
catch (Exception exc)
{
exc.printStackTrace();
}
}


public JLabel getJLabel(){
JLabel label = new JLabel();
writeImage(null);
label.setIcon(new ImageIcon(image));
return label;
}


protected final void quickView(){
Frame frame = new Frame();
frame.setSize(800,600);
frame.setLayout(new BorderLayout());
frame.add(BorderLayout.CENTER,getJLabel());
frame.show();
try{
Thread.sleep(15000);
}
catch (Exception exc){exc.printStackTrace();}
frame.dispose();
System.exit(0);
}



private JFreeChart chart;
private BufferedImage image;
public RadarChart(String pid) {
try
{
setDataset((CategoryDataset)produceDataset(null));
}
catch (Exception exc)
{
exc.printStackTrace();
}

}

public void setDataset(Dataset dataset){
// createAreaChart
// createVerticalBarChart3D
// ChartFactory.createLineChart()
try
{
PieDataset set;
//JFreeChart chart;
Plot plot;
DefaultKeyedValues kv = new DefaultKeyedValues();
kv.addValue(new Integer(1),new Integer(5));
kv.addValue(new Integer(2),new Integer(5));
kv.addValue(new Integer(3),new Integer(5));
set = new DefaultPieDataset(kv);
plot = new RadarPlot((CategoryDataset)dataset);
chart = new JFreeChart(plot);
image = null;
}
catch (NoSuchMethodError exc){
exc.printStackTrace();
}
}

public Dataset permuteDataset(DefaultCategoryDataset dataset,String[] categories)
{
DefaultCategoryDataset result = new DefaultCategoryDataset();
int rows = dataset.getRowCount();
for (int rowindex = 0;rowindex < rows;rowindex++)
{
Comparable serie = (Comparable)dataset.getRowKey(rowindex);
for (int index = 0;index < categories.length;index++)
{
result.addValue((Double)dataset.getValue(serie,categories[index]),serie,categories[index]);
}
}
return result;
}

/**
* @see de.laures.cewolf.DatasetProducer#produceDataset(Map)
*/
public Object produceDataset(Map arg0) {
String[]
// categories = null,seriesNames;
seriesNames = {"a0"},
categories = {"Competition","Customer","HSEQ","Manufacturing","Market","Strategy","Technical"},
sortedcategories = {"Competition","Customer","Market","Manufacturing","Technical","HSEQ","Strategy"};
Double[][] values = null;
Random rnd = new Random();
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
try
{
values = new Double[seriesNames.length] [categories.length];
for (int sindex = 0;sindex < seriesNames.length;sindex++)
{
System.out.print("Serie "+sindex+" - ");
for (int cindex = 0;cindex < categories.length;cindex++)
{
try
{
values[sindex][cindex] = new Double(rnd.nextFloat());
System.out.print("("+categories[cindex]+","+values[sindex][cindex]+")");
dataset.addValue(values[sindex][cindex],new Integer(1),categories[cindex]);
}
catch (NullPointerException exc)
{
System.out.println(getClass().getName()+"produceDataset NullPointerException - Hack");
values[sindex][cindex] = new Double(0);
}
}
System.out.println();
}
return permuteDataset(dataset,sortedcategories);
// return DatasetUtilities.createCategoryDataset("Series", "Categories", values);
}
catch (Exception exc)
{
// System.err.println(""+exc);
exc.printStackTrace();
return null;
}
}

public static void main(String param[]){
new RadarChart("").quickView();
}

}

Locked