Ajuda com jfreechart urgente!

Olá pessoal, estou tentando rodar o seguinte programa no netbeans, não aparece nenhuma correção automática mas quando vou executar aparece uma penca de erros. Se alguém puder me ajudar ficaria muito grato.
Obrigado

O código é o seguinte:

package grafico;

import java.util.Calendar;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JPanel;

import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.LegendItem;

import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.time.Hour;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;

public class Main extends Jpanel{

public static void main(String[] args) {
  
    ///////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////
     Random rand = new Random();  

     String[] categorias = new String[] { "Categoria A", "Categoria B", "Categoria C" };  

     TimeSeriesCollection dataset = new TimeSeriesCollection();  

     Calendar c = Calendar.getInstance();  
     c.clear();  
     for (int i = 0; i < categorias.length; i++) {
         
         System.out.println("categorias.lenght");
         
         TimeSeries series = new TimeSeries(categorias[i], Hour.class);  
         for (int j = 0; j < 24; j++) {  
             c.set(Calendar.HOUR_OF_DAY, j);  
             series.add(new Hour(c.getTime()), 100 + rand.nextInt(10 + (i * j * 2)) + j * j);  
         }  
         dataset.addSeries(series);  
     }  

     ValueAxis axis1 = new NumberAxis("Eixo X");  
     ValueAxis axis2 = new NumberAxis("Eixo Y");  

     StandardXYItemRenderer renderer = new StandardXYItemRenderer();  

     XYPlot plot = new XYPlot(dataset, axis1, axis2, renderer);  

// StandardLegend legend = new StandardLegend();
// legend.setAnchor(Legend.SOUTH);

     JFreeChart chart = new JFreeChart(plot);  

// chart.setLegend(legend);

     ChartPanel panel = new ChartPanel(chart);  

     JFrame f = new JFrame("teste");  
     f.setSize(640, 480);  
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
     f.getContentPane().add(panel);  
     f.setVisible(true);  
    
    ////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////
}

}