Gráficos con JFreeChart - Parte I

Gráficos con JFreeChart - Parte I
INTRODUCCIÓN
En algún momento del desarrollo de un software es necesario mostrar ciertos reportes en forma gráfica, por ejemplo, en un gráfico tipo barra, o tipo pastel.
JFreeChart es un librería para Java que permite crear diversos tipos de gráficos, tiene también componentes que permiten mostrarlos o quizás exportarlos a un archivo.
OBTENER LA LIBRERIA
Lo primero que se necesita es obtener la librería, la URL es:
http://sourceforge.net/projects/jfreechart/files/. Los jar que necesitamos se encuentran en la carpeta lib y son los siguientes:
  • jfreechart-1.0.15.jar -> Librería de JFreeChart
  • jcommon-1.0.18.jar -> Librería de la cual depende JFreeChart
  • iText-2.1.5.jar -> Librería necesaria si queremos incluir el gráfico en un archivo PDF
GRÁFICO TIPO PASTEL
Mostrando el gráfico en un ChartFrame
// Definiendo la fuente de datos
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("Artículo 1", 40.55);
data.setValue("Artículo 2", 81.23);
data.setValue("Artículo 3", 61.54);

// Creando el gráfico
JFreeChart chart = ChartFactory.createPieChart(
 "Ejemplo de Gráfico Tipo Pastel", // Título del gráfico
 data, // DataSet
 true, // Leyenda
 true, // ToolTips
 true);

// Mostrando el gráfico
ChartFrame frame = new ChartFrame("JFreeChart", chart);
frame.pack();
frame.setVisible(true);
Dibujando el gráfico en un jPanel
// Definiendo la fuente de datos
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("Artículo 1", 40.55);
data.setValue("Artículo 2", 81.23);
data.setValue("Artículo 3", 61.54);

// Creando el gráfico
JFreeChart chart = ChartFactory.createPieChart(
 "Ejemplo de Gráfico Tipo Pastel", // Título del gráfico
 data, // DataSet
 true, // Leyenda
 true, // ToolTips
 true);

// Dibujando el gráfico en un jPanel
BufferedImage imagen =  chart.createBufferedImage(jPanel1.getWidth() - 2,jPanel1.getHeight() - 2);
this.jPanel1.getGraphics().drawImage(imagen,1,1,null);
Mostrar el gráfico en un jPanel
// Definiendo la fuente de datos
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("Artículo 1", 40.55);
data.setValue("Artículo 2", 81.23);
data.setValue("Artículo 3", 61.54);

// Creando el gráfico
JFreeChart chart = ChartFactory.createPieChart(
 "Ejemplo de Gráfico Tipo Pastel", // Título del gráfico
 data, // DataSet
 true, // Leyenda
 true, // ToolTips
 true);

// Mostrando el gráfico en un jPanel
this.jPanel1.removeAll();
this.jPanel1.setLayout(new java.awt.BorderLayout());
this.jPanel1.add(new ChartPanel(chart));
this.jPanel1.validate();
Mostrando el gráfico en un archivo PDF
// Definiendo la fuente de datos
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("Artículo 1", 40.55);
data.setValue("Artículo 2", 81.23);
data.setValue("Artículo 3", 61.54);

// Creando el gráfico
JFreeChart chart = ChartFactory.createPieChart(
 "Ejemplo de Gráfico Tipo Pastel", // Título del gráfico
 data, // DataSet
 true, // Leyenda
 true, // ToolTips
 true);

// Mostrar el gráfico en un archivo PDF
try {
 Document doc = new Document();
 PdfWriter.getInstance(doc, new FileOutputStream("D:\\doc.pdf"));
 doc.open();
 BufferedImage bufferedImage = chart.createBufferedImage(500, 300);
 Image image = Image.getInstance(bufferedImage, null);
 doc.add(image);
 doc.close();
 JOptionPane.showMessageDialog(rootPane, "Ok.");
} catch (Exception e) {
 e.printStackTrace();
}
CÓDIGO FUENTE
En esta sección te presento un video de una aplicación CLIENTE-SERVIDOR.
Tú tienes acceso al código fuente de esta aplicación, después del video tienes el enlace.