Construção de gráficos

4 respostas
vanessa.tenorio

Bom dia, pessoal!!!

Bem, tenho que desenvolver um aplicativo em java no qual receba dados de um Banco de Dados e a partir destes contrua gráficos indicadores em barra, na interface do aplicativo.

Alguém pode me dar algumas orientações para isto? A biblioteca jfreechart é uma boa opçào para este tipo de aplicativo?

Grata a todos!

4 Respostas

drsmachado

JFreeChart é a melhor opção para isto.
Procure pelo nome do gráfico que deseja, no google, qoe vai encontrar material suficiente para conseguir desenvolver o que precisa.

B

tem o http://www.highcharts.com/

muito bom

vanessa.tenorio

Realizando pesquisas, consegui construir um pequeno projeto, no qual exibe um gráfico simples, agora tenho que integrá-lo ao banco de dados. :roll:

Tive de adicionar duas bibliotecas a este projeto, são elas: jfreechart-1.0.14.jar e jcommon-1.0.17.jar.

package barsgraphic;

/**
 *
 * @author vanessa
 */
//Requerido a Api JFreeChart
import java.awt.Dimension;
import javax.swing.JFrame;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

@SuppressWarnings("serial")
public class BarsGraphic extends JFrame {

    public BarsGraphic(String title) {
        super(title);
        CategoryDataset dataset = BarsGraphic.createDataset();
        JFreeChart chart = BarsGraphic.createBarChart(dataset);
        ChartPanel panel = new ChartPanel(chart);
        panel.setPreferredSize(new Dimension(400, 300));
        setContentPane(panel);
    }

    private static CategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(6, "Preto", "Corsa");
        dataset.addValue(4, "Preto", "Fiesta");
        dataset.addValue(3, "Preto", "Gol");
        dataset.addValue(5, "Vermelho", "Corsa");
        dataset.addValue(2, "Vermelho", "Fiesta");
        dataset.addValue(3, "Vermelho", "Gol");
        dataset.addValue(2, "Azul", "Corsa");
        dataset.addValue(8, "Azul", "Fiesta");
        dataset.addValue(1, "Azul", "Gol");
        return dataset;
    }

    private static JFreeChart createBarChart(CategoryDataset dataset) {
        JFreeChart chart = ChartFactory.createBarChart(
                "Escolha de cor por veículo", 
                "Veículo", 
                "Quantidade",
                dataset,
                PlotOrientation.VERTICAL, 
                true, false, false); 
        return chart;
    }

    public static void main(String[] args) {
        BarsGraphic chart = new BarsGraphic("teste");
        
        chart.pack();
        chart.setVisible(true);
    }
}
drsmachado

Os dados são inseridos neste trecho

private static CategoryDataset createDataset() {  
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();  
        dataset.addValue(6, "Preto", "Corsa");  
        dataset.addValue(4, "Preto", "Fiesta");  
        dataset.addValue(3, "Preto", "Gol");  
        dataset.addValue(5, "Vermelho", "Corsa");  
        dataset.addValue(2, "Vermelho", "Fiesta");  
        dataset.addValue(3, "Vermelho", "Gol");  
        dataset.addValue(2, "Azul", "Corsa");  
        dataset.addValue(8, "Azul", "Fiesta");  
        dataset.addValue(1, "Azul", "Gol");  
        return dataset;  
    }

Ou seja, você busca no banco de dados as informações e, ao invés de definir manualmente ali, pode colocar um loop, iterar sobre o que veio do banco e então gerar o dataset.
Não é difícil.

Opte pela versão mais atual do JFreeChart, ao fazer o download, a pasta lib conterá o jfreechart.xxx.jar e o jcommons.xxx.jar correspondente.

Criado 19 de junho de 2012
Ultima resposta 19 de jun. de 2012
Respostas 4
Participantes 3