Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package SeriesDiarias; import SeriesDiarias.SerieDadosDiarios; import java.awt.Dimension; import java.util.List; import org.jfree.chart.ChartPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; /** * Tela para visualizao de uma Srie de Dados Dirios. * * Para usar a classe crie o visualizador passando a srie a ser exibida e, em * seguida, chame o mtodo exibir. * * Usa a biblioteca JFreeChart para exibir um grfico de linha mostrando os dados * da srie. Obs: a janela posicionada aleatoriamente na tela. * * @author julio */ public class VisualizadorSeries { // Janela que contm o grfico private ApplicationFrame janela; /** * Constri a visualizao dos dados. Cria a janela e o grfico a ser exibido * nela. * * @param serieDados A srie de dados que ter seus dados exibidos em um grfico */ public VisualizadorSeries(SerieDadosDiarios serieDados) { // cria a janela janela = new ApplicationFrame("Visualizador Series Diarias"); janela.setDefaultCloseOperation(ApplicationFrame.EXIT_ON_CLOSE); // cria o grfico que contm os dados da srie JFreeChart graficoLinha = ChartFactory.createLineChart(serieDados.obterIdentificacaoSerie(), // Ttulo do grfico "Dia", // Nome do eixo X "Valor", // Nome do eixo Y criarDataset(serieDados), // mtodo que cria os dados do grfico PlotOrientation.VERTICAL, // Orientao do grfico true, true, false); // legenda, tooltips, urls // adiciona o grfico na janela ChartPanel painelGrafico = new ChartPanel(graficoLinha); painelGrafico.setPreferredSize(new Dimension(600, 400)); janela.setContentPane(painelGrafico); janela.pack(); // posiciona a janela aleatoriamente na tela RefineryUtilities.positionFrameRandomly(janela); } /** * Exibe a janela com o grfico */ public void exibir() { janela.setVisible(true); } /** * Mtodo interno que cria o conjunto de dados do grfico * * @param serieDados Srie de dados que ter o grfico exibido. * @return Retorna o conjunto de dados (dataset) do grfico. */ private DefaultCategoryDataset criarDataset(SerieDadosDiarios serieDados) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // para cada dia do grfico adiciona um valor no conjunto de dados for (int dia = serieDados.obterDiaInicial(); dia <= serieDados.obterDiaFinal(); dia++) { dataset.addValue(serieDados.obterDado(dia), serieDados.obterIdentificacaoSerie(), Integer.toString(dia)); } return dataset; } }