Allora ragazzi sono riuscito a prendere i dati dal mio db ed ad inserire il tutto nel mio panel.

Ora la domanda è:

al caricamento viene stampato un grafico di default.

Io voglio che alla pressione di un tasto la query cambia.

Cioè voglio selezionare gli articoli venduti in un intervallo di tempo.

Per verificare che i dati siano esatti utilizzo dei system.out.println ed i dati sono corretti, ol problema invece sta nel fatto che il panel che mi viene restituito non viene aggiornato.

Come posso fare??

mostro il codice.

classe per creare il grafico a barre orizzontali
codice:
package Panel;

import java.awt.Color;
import java.util.Date;
import java.util.Vector;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

import com.toedter.calendar.JDateChooser;

import supporto.Elimina_Caratteri;

import esempio.Visualizzazioni;

/**
 * A simple demonstration application showing how to create a horizontal bar chart.
 *
 */
public class BarChartDemo5 extends ApplicationFrame {
static Visualizzazioni db;
DefaultCategoryDataset dataset;
    /**
     * Creates a new demo instance.
     *
     * @param title  the frame title.
     */
    public BarChartDemo5(final String title) {

        super(title);
        final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        setContentPane(chartPanel);
        
    }
    
    public JPanel panel(final String title) {
    	db = new Visualizzazioni("provaDB");
	   	try {
				db.connetti();
			} catch (InstantiationException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IllegalAccessException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}//fine del programma
       // super(title);
        final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    //    setContentPane(chartPanel);
		return chartPanel;
        
    }
    
    public JPanel panelData(final String title, String folderName, String folderName2) {
    	db = new Visualizzazioni("provaDB");
	   	try {
				db.connetti();
			} catch (InstantiationException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IllegalAccessException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}//fine del programma
       // super(title);
        final CategoryDataset dataset = createDatasetData(folderName, folderName2);
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    //    setContentPane(chartPanel);
		return chartPanel;
        
    }

    private CategoryDataset createDatasetData(String folderName, String folderName2) {
		// TODO Auto-generated method stub
		Elimina_Caratteri elimina = new Elimina_Caratteri();
	    
        final String series1 = "Articoli";
        Vector v=db.eseguiQuery("SELECT NomeArticolo, SUM(quantita) FROM Scontrini,codSCONTRINI WHERE NOMEARTICOLO = NOMEARTICOLO and Scontrini.CodScontrino = codSCONTRINI.codscontrino and data >= '"+folderName+"' and data<= '"+folderName2+"' GROUP BY NomeArticolo");
        System.out.println("vettore data "+v);
        dataset = new DefaultCategoryDataset();
    for(int i=0; i< v.size(); i++){
       String coppia = v.get(i).toString();
       coppia=elimina.Elimina_Caratteri(coppia); 
        String[] arr = coppia.split(", ");
   
	    String nomearticolo = arr[0] +" ("+arr[1]+")";

        dataset.addValue(Double.parseDouble(arr[1]), series1, nomearticolo);


}
return dataset;
	}

	/**
     * Creates a sample dataset.
     * 
     * @return A sample dataset.
     */
    private CategoryDataset createDataset() {
    	Elimina_Caratteri elimina = new Elimina_Caratteri();
     /*   final double[][] data = new double[][] {
                {1.0, 43.0, 35.0, 58.0, 54.0, 77.0, 71.0, 89.0},
                {54.0, 75.0, 63.0, 83.0, 43.0, 46.0, 27.0, 13.0},
                {41.0, 33.0, 22.0, 34.0, 62.0, 32.0, 42.0, 34.0}
        };
        
        return DatasetUtilities.createCategoryDataset("Series ", "Factor222 ", data);*/
    	final String series1 = "Articoli";
     /*   final String series2 = "Second";
        final String series3 = "Third";*/
        Vector v=db.eseguiQuery("SELECT NomeArticolo, SUM(quantita) FROM Scontrini WHERE NOMEARTICOLO = NOMEARTICOLO GROUP BY NomeArticolo");
        dataset = new DefaultCategoryDataset();
        for(int i=0; i< v.size(); i++){

           String coppia = v.get(i).toString();

           coppia=elimina.Elimina_Caratteri(coppia); 
           String[] arr = coppia.split(", ");
           
        	String nomearticolo = arr[0] +" ("+arr[1]+")";

        

        dataset.addValue(Double.parseDouble(arr[1]), series1, nomearticolo);

        }
        return dataset;
    }
    
    /**
     * Creates a chart.
     * 
     * @param dataset  the dataset.
     * 
     * @return A chart.
     */
    private JFreeChart createChart(final CategoryDataset dataset) {
        // create the chart...
        final JFreeChart chart = ChartFactory.createBarChart(
            "Prospetto vendite",                 // chart title
            "Prodotti",                  // domain axis label
            "Nro Pz.Venduti",                 // range axis label
            dataset,                     // data
            PlotOrientation.HORIZONTAL,  // orientation
            true,                        // include legend
            true,
            false
        );

        // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...

        chart.setBackgroundPaint(Color.lightGray);

        // get a reference to the plot for further customisation...
        final CategoryPlot plot = chart.getCategoryPlot();

        plot.getRenderer().setSeriesPaint(0, new Color(0, 0, 255));
        plot.getRenderer().setSeriesPaint(1, new Color(75, 75, 255));
        plot.getRenderer().setSeriesPaint(2, new Color(150, 150, 255));
        
        // change the auto tick unit selection to integer units only...
        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        
        rangeAxis.setRange(0.0, 100.0);
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

       // NumberAxis hna = rangeAxis;
       // MarkerAxisBand band = new MarkerAxisBand(hna, 2.0, 2.0, 2.0, 2.0,
       //     new Font("SansSerif", Font.PLAIN, 9));

//        IntervalMarker m1 = new IntervalMarker(0.0, 33.0, "Low", Color.gray,
//            new BasicStroke(0.5f), Color.green, 0.75f);
//        IntervalMarker m2 = new IntervalMarker(33.0, 66.0, "Medium", Color.gray,
//            new BasicStroke(0.5f), Color.orange, 0.75f);
//        IntervalMarker m3 = new IntervalMarker(66.0, 100.0, "High", Color.gray,
//            new BasicStroke(0.5f), Color.red, 0.75f);
//        band.addMarker(m1);
//        band.addMarker(m2);
//        band.addMarker(m3);
//        hna.setMarkerBand(band);
        // OPTIONAL CUSTOMISATION COMPLETED.
        return chart;
    }
    
   
    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(final String[] args) {
    	
        final BarChartDemo5 demo = new BarChartDemo5("Bar Chart Demo 5");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }

}
lo istanzio così:

demo = new BarChartDemo5("Bar Chart Demo 5");
panelGrafico = demo.panelData("Ciccio", folderName, folderName2);

dove folderName,folderName2 sono le data in formato testo ("2011-10-10")