Buongiorno.
Sto lavorando con il plugin di eclipse WindowBuilder e dentro ad un frame vorrei inserire un oggetto di tipo ChartPanel in modo che mi visualizzi il grafico all'interno della finestra.
File provagrafici:
codice:
package grafici;

import java.io.File;
import java.io.IOException;
import java.text.NumberFormat;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.labels.XYItemLabelGenerator;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class GraficoALinea extends ApplicationFrame {
    public GraficoALinea(final String titolo) {
        super(titolo);
        final XYDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(700, 470));
        setContentPane(chartPanel);
        /*
         * try { ChartUtilities.saveChartAsPNG(new
         * File("C:\\_jee_juno_programmi\\grafici\\lineaFrame.png"), chart,
         * 1024, 768); } catch (IOException ex) {
         * System.out.println(ex.getLocalizedMessage()); }
         */
    }

    /**
     * Creazione del dataset da utilizzare per la generazione del grafi Ogni
     * grafico ha un suo dataset specifico
     * 
     * @return un dataset di default.
     */
    private XYDataset createDataset() {
        final XYSeries dataset = new XYSeries("Dati");
        dataset.add(1, 1);
        dataset.add(2, 5);
        dataset.add(3, -3);
        dataset.add(4, 0);
        dataset.add(5, 9);
        dataset.add(6, 15);
        return new XYSeriesCollection(dataset);
    }

    /**
     * Metodo deputato alla creazione del grafico.
     * 
     * @param dataset
     *            il dataset creato dal metodo createDataset
     * @return il grafico.
     */
    private JFreeChart createChart(final XYDataset dataset) {
        final JFreeChart chart = ChartFactory.createXYLineChart("Grafico a Linea", // titolo
                "Label", // label asse delle X
                "Valori", // label asse dell Y
                dataset, // sorgente dei dati
                PlotOrientation.VERTICAL, // orientamento del grafico
                true, // mostra la legenda
                true, // usa i tooltip
                false);
        XYPlot plot = (XYPlot) chart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, true);
        plot.setRenderer(renderer);
        renderer.setBaseShapesVisible(true);
        renderer.setBaseShapesFilled(true);
        NumberFormat format = NumberFormat.getNumberInstance();
        format.setMaximumFractionDigits(2);
        XYItemLabelGenerator generator = new StandardXYItemLabelGenerator(
                StandardXYItemLabelGenerator.DEFAULT_ITEM_LABEL_FORMAT, format, format);
        renderer.setBaseItemLabelGenerator(generator);
        renderer.setBaseItemLabelsVisible(true);
        return chart;
    }
}
File Provagrafici.java
codice:
package grafici;

import java.awt.EventQueue;

import javax.swing.JFrame;

import org.jfree.chart.ChartPanel;
import org.jfree.ui.RefineryUtilities;

import java.awt.Panel;
import javax.swing.JPanel;
import java.awt.Color;

public class Provagrafici {

    private JFrame frame;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Provagrafici window = new Provagrafici();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Provagrafici() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
        
        
        final GraficoALinea demo = new GraficoALinea(
                "Grafici al gusto di caffè");
        demo.pack();
        
        
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
        
        JPanel panel = new JPanel();
    
        panel.setBackground(Color.GREEN);
        panel.setBounds(128, 97, 80, 85);
    grafico_frame.jpg
        frame.getContentPane().add(panel);
        
        
        //panel.add(demo);
        //frame.getContentPane().add(demo.pack());
    }
}
Nell'immagine che ho postato vorrei inserire il grafico JFreeChart e ChartPane all'interno del frame di windowbuilder nel pannello verde.
Si può? Ci sono componenti in windowbuilder che posso utilizzare i grafici?
Grazie.