Ho inserito un grafico a torta in un pannello, ma ora come faccio a ridimensinarlo?
codice:
package grafici;
import java.awt.EventQueue;
import javax.swing.JFrame;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.RefineryUtilities;
import java.awt.Panel;
import java.awt.event.ContainerListener;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.border.MatteBorder;
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, 335);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
FlowLayout flowLayout = (FlowLayout) panel.getLayout();
flowLayout.setVgap(0);
flowLayout.setHgap(0);
panel.setBackground(Color.GREEN);
panel.setBounds(10, 11, 272, 247);
frame.getContentPane().add(panel);
GraficoTorta chartPanel = new GraficoTorta();
panel.add(chartPanel.createChartPanelMetodo());
JPanel panel_1 = new JPanel();
panel_1.setBounds(292, 51, 113, 117);
panel_1.setBackground(Color.GREEN);
frame.getContentPane().add(panel_1);
GraficoTorta provaTorta = new GraficoTorta();
panel_1.add(provaTorta.createChartPanelMetodo());
}
}
Classe per creare il mio grafico con metodi.
codice:
package grafici;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
public class GraficoTorta {
public GraficoTorta() {
super();
final PieDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(50, 50));
// setContentPane(chartPanel);
}
public PieDataset createDataset() {
final DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Uno", new Double(43.2));
dataset.setValue("Due", new Double(10.0));
dataset.setValue("Tre", new Double(27.5));
dataset.setValue("Quattro", new Double(17.5));
dataset.setValue("Cinque", new Double(11.0));
dataset.setValue("Sei", new Double(19.4));
return dataset;
}
public JFreeChart createChart(final PieDataset dataset) {
final JFreeChart chart = ChartFactory.createPieChart("Grafico a Torta", dataset, true, true, false);
final PiePlot plot = (PiePlot) chart.getPlot();
plot.setInteriorGap(0.0);
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{2} {0}={1}"));
return chart;
}
public JPanel createChartPanelMetodo() {
DefaultPieDataset pieDataset = new DefaultPieDataset();
pieDataset.setValue("one", 10);
pieDataset.setValue("two", 20);
pieDataset.setValue("three", 30);
pieDataset.setValue("four", 40);
pieDataset.setValue("five", 20);
pieDataset.setValue("six", 10);
JFreeChart chart = ChartFactory.createPieChart("3d pie chart", pieDataset, true, true, true);
return new ChartPanel(chart);
}
}