Bom dia.
Estou tentando aprender um pouco sobre geração de gráficos com jfreeChart, e achei um exemplo que funciona, mas editei para gerar mais de um gráfico e não esta mostrando outro gráfico… Devo ter cometido algum errinho , mas não achei onde…
Segue o exemplo todo, depois explico o que alterei:
public class principal extends javax.swing.JFrame {
public principal() {
initComponents();
}
@SuppressWarnings("unchecked")
private CategoryDataset createDataset() { // não alterei nada
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1000.0, "01/2012", "Mês/Ano");
dataset.addValue(1750.0, "02/2012", "Mês/Ano");
dataset.addValue(1500.0, "03/2012", "Mês/Ano");
dataset.addValue(2000, "04/2012", "Mês/Ano");
return dataset;
}
public void criaGrafico() { // não alterei nada
CategoryDataset cds = createDataset();
String titulo = "Gráfico de Teste";
String eixoy = "Valores";
String txt_legenda = "Ledenda:";
boolean legenda = true;
boolean tooltips = true;
boolean urls = true;
JFreeChart graf = ChartFactory.createBarChart3D(titulo, txt_legenda, eixoy, cds, PlotOrientation.VERTICAL, legenda, tooltips, urls);
ChartPanel myChartPanel = new ChartPanel(graf, true);
myChartPanel.setSize(jPanel1.getWidth(), jPanel1.getHeight());
myChartPanel.setVisible(true);
jPanel1.removeAll();
jPanel1.add(myChartPanel);
jPanel1.revalidate();
jPanel1.repaint();
}
public void criaGrafico1() { //adicionei esse método novo (pra criar um novo grafico)
CategoryDataset cds1 = createDataset();
String titulo = "Gráfico 2";
String eixoy = "Valores";
String txt_legenda = "Legenda:";
boolean legenda = true;
boolean tooltips = true;
boolean urls = true;
JFreeChart graf1 = ChartFactory.createLineChart3D(titulo, txt_legenda, eixoy, cds1, PlotOrientation.HORIZONTAL, legenda, tooltips, urls);
ChartPanel myChartPanel1 = new ChartPanel(graf1, true);
myChartPanel1.setSize(jPanel2.getWidth(), jPanel2.getHeight());
myChartPanel1.setVisible(true);
jPanel2.removeAll();
jPanel2.add(myChartPanel1);
jPanel2.revalidate();
jPanel2.repaint();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
principal p = new principal();
p.criaGrafico();
p.criaGrafico1(); //adicionei isso
p.setVisible(true); //adicionei isso
//new principal().setVisible(true); //comentei isso
}
});
}
Coloquei uns comentários onde eu alterei, na verdade o que eu queria era criar outro gráfico diferente para teste, com os mesmos valores mesmo, só trocar o “estilo” para line, pie… mas nenhum funcionou, nem alterando no método que funciona (o primeiro)…
Grato.