Como que faço para que o JPanel
gere dois gráficos um do lado do outro no mesmo JPanel
?
No momento apenas consigo com duas janelas
Método main
:
BarChart demo = new BarChart("TESTE","TESTE");
demo.pack();
demo.setVisible(true);
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.util.Rotation;
public class BarChart extends JFrame {
private static final long serialVersionUID = 1L;
public BarChart(String applicationTitle, String chartTitle) {
super(applicationTitle);
// Isso irá criar o conjunto de dados
XYDataset dataset = createDataset();
// com base no conjunto de dados que criamos o gráfico
JFreeChart chart = createChart(dataset, chartTitle);
// vamos colocar o gráfico em um painel
ChartPanel chartPanel = new ChartPanel(chart);
// default tamanho
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
// adiciona a nossa aplicação
setContentPane(chartPanel);
}
/**
* Cria um conjunto de dados de amostra
*/
private XYDataset createDataset() {
XYSeries series = new XYSeries("Linux Users");
series.add(1995, 0.5);
series.add(2000, 3.0);
series.add(2010, 20.0);
series.add(2020, 50.0);
XYDataset dataset = new XYSeriesCollection(series);
return dataset;
}
/**
* Cria um gráfico
*/
private JFreeChart createChart(XYDataset dataset, String title) {
JFreeChart chart = ChartFactory.createXYAreaChart( // título / gráfico
title, title,title, dataset, // dados
org.jfree.chart.plot.PlotOrientation.VERTICAL, true, // include lenda
false, false);
// PiePlot3D plot = (PiePlot3D) chart.getPlot();
// plot.setStartAngle(290);
// plot.setDirection(Rotation.CLOCKWISE);
// plot.setForegroundAlpha(0.5f);
try {
ChartUtilities.saveChartAsPNG(
new java.io.File("Distros.png"), chart, 500, 300);
} catch (java.io.IOException exc) {
System.err.println("Error writing image to file");
}
return chart;
}
}