Você está na página 1de 9

CURSO:

DESARROLLO DE
APLICACIONES EN WEB
TEMA:

JFREECHART
Por:
PEDRO P. CUTIRE CONDORI
PROF: CARMONA ESPINOZA
JORGE

SICUANI 12 DE ENERO DE 2015

DESARROLLO DE APLICACIONES EN WEB

JFreeChart
Primero se debe de incorporar la libreria JFreeChart a Netbeans
por lo cual debemos abrir Netbeans y dirigirnos a
la opcin Tools
o
herramientas y
clickear
la opcin Ant libreras o libreries. Enseguida en la ventana que
se abri hacemos click en new library o nueva librera le dan un
nombre caracterstico en mi caso le pondr "graficos", enseguida clickea
en add Jar/folder y buscamos la direccin donde se descargo la
libreria(recuerden que deben de dejarla en un lugar seguro y descomprimir el
.rar), una ves dentro de JFreeChart-1.0.14buscan la carpeta lib y agregan
todos los .jar que hallan dentro y le dan a add jar/Folder,terminando este
proceso le dan "ok" y ya tendrn agregada la librera jFreeChart agregada
con xito a nuestro Netbeans para ser ocupada cuantas veces les sea
necesario

Luego Creamos una nueva aplicacin Java

DESARROLLO DE APLICACIONES EN WEB

Le damos un nombre se creara el proyecto

Enseguida Vamos a Crear un JFrame en nuestro Proyecto y en


este JFrame Arrastraremos 2 JPanel, 2 JButton, como lo
muestran las siguientes imagen:

Una vez hecho todo esto agregaremos la librera que creamos anteriormente a
nuestro proyecto la librera se llamaba "graficos", la agregamos de la siguiente
manera, dentro del proyecto ah una carpeta que se llama libreries le
damos botn secundario en add Jar/Folder y buscamos nuestra librera y le
damos a add Library

DESARROLLO DE APLICACIONES EN WEB

Enseguida modificaremos la clase java que se nos genero por


defecto al crear el proyecto, en este caso se llama
"Graficas.java" borramos todo el contenido que este dentro de
esta clase y reemplazamos por el siguiente cdigo el cual se
encargara de generar las grficas de barra

package graficas;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.*;
import org.jfree.data.category.DefaultCategoryDataset;
public class Graficas {

private BufferedImage _image ;//para la imagen en memoria


private JFreeChart grafico ;// el grafico
private Dimension d;//dimension del grafico

public Graficas (){

DESARROLLO DE APLICACIONES EN WEB

/* Crea el grafico */
public void crear_grafico_de_barras(Dimension d, int[] v, String[]
arg1, String arg2[],String[] data){
this.d= d;
DefaultCategoryDataset dataset = newDefaultCategoryDataset();
//se llenan los datos
for(int i=0; i<=v.length-1;i++){
dataset.setValue(v[i], arg1[i], arg2[i]);
}
//se crea el grafico
grafico = ChartFactory.createBarChart3D(data[0], data[1], data[2], dataset,
PlotOrientation.HORIZONTAL , true, false, true);
//se coloca el grafico en memoria
_image =grafico.createBufferedImage(this.d.width,this.d.height);
System.err.println("grafico creado");
}

/* carga la imagen que esta en memoria en el objeto jLabel */


public void cargar_grafico(JLabel lb){
ImageIcon imagenFondo = new ImageIcon(_image);
lb.setIcon(imagenFondo);
lb.repaint();
}
/* presenta la ventana de dialogo "guardar" y salva el grafico generado en JPG */
public void Guardar(){
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showSaveDialog(null);

DESARROLLO DE APLICACIONES EN WEB

if ( result == JFileChooser.APPROVE_OPTION ){
try {
//se obtiene la direccion donde se guardara la imagen
String url = fileChooser.getSelectedFile().toString();
//Se guarda la imagen
ChartUtilities.saveChartAsJPEG(new File(url
+ ".jpg"),grafico, d.width, d.height);
} catch (IOException ex) {
Logger.getLogger(Graficas .class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}

Salimos de la clase y guardamos los cambios si nos pide guardar, ahora


nos dirigiremos a la clase principal donde haremos llamado de la
clase Graficas para implementar sus mtodos.
hacemos que el botn barras o botn 1 haga un evento de ActionPerformed, de
la siguiente manera:

hacer click secundario sobre el botn 1 o de barra

hacer click en Event - Action - ActionPerformed


Una vez dentro de el mtodo agregamos el siguiente extracto de cdigo no se
preocupen si les da error, lo solucionaremos mas adelante.
//tamao del grafico
Dimension d = jPanel1.getSize();//toma el tamao del contenedor
//se crean los datos
int[] valores = {1000,2011,3030,1569,2688,4587};
String[] arg1 = {"Enero","Febrero","Marzo","Enero","Febrero","Marzo"};
String[] arg2 = {"Visitas","Visitas","Visitas","Hits","Hits","Hits"};
//titulo, lateral 1, lateral 2
String[] data = {"Blog de Robert","Primer Trimestre","Visitas"};
//se crea el grafico
DESARROLLO DE APLICACIONES EN WEB

migrafico.crear_grafico_de_barras(d, valores, arg2, arg1,


data);
//se crea un jlabel para colocar el grafico
JLabel j = new JLabel();
j.setBounds(0, 0, d.width, d.height);
//se carga el grafico de memoria
migrafico.cargar_grafico(j);
//se aade al contenedor
jPanel1.add(j);
this.repaint();
Para solucionar los ERRORES que se generaron se debe de agregar esta linea
ente el nombre de la clase y el InitComponent()}
.....
public class Graficas extends javax.swing.JFrame {
Graficas migrafico = new Graficas (); //aqui debe de ir esta linea de
programacion
public Graficas() {
initComponents();
}
......
Y recuerden incorporar las libreras que les pidan en este caso son estas dos,
aunque ya se agregaran mas.
import java.awt.Dimension;
import javax.swing.JLabel;
y Listo se ha finalizado la creacin de grficos de barra, ahora pasaremos al
lado de generar el grafico de torta con otros datos de ejemplo.
Para la creacin del Grfico de torta espesaremos con la incorporacin de
las libreras que sern indispensables, para no agregarlas despus.
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
En la misma ubicacion donde Esta Graficas migrafico = new Graficas(), deben
de incorporar lo siguiente, que seran nuestras variables globales:
private BufferedImage _image;//para la imagen en memoria
private JFreeChart grafico;// el grafico
luego nos vamos a el JFrame nuevamente y le damos accion al Boton 2 o
circular

hacer click segundario sobre el boton 2 o de circular


DESARROLLO DE APLICACIONES EN WEB

hacer click en Event - Action - ActionPerformed


agregamos el siguiente extracto de cdigo en
el mtodo generado
Dimension d = jPanel2.getSize();
DefaultPieDataset dataset = new DefaultPieDataset();
// Establecemos unas categoras de ejemplo
dataset.setValue("Ejemplo1", 43.2);
dataset.setValue("Ejemplo2", 27.9);
dataset.setValue("Ejemplo1", 79.5);
dataset.setValue("Ejemplo2", 79.5);
// Creamos la tabla
grafico = ChartFactory.createPieChart("Sample Pie
Chart",dataset,true,true,false);
JLabel j = new JLabel();
j.setBounds(0, 0, d.width, d.height);
_image = grafico.createBufferedImage(d.width, d.height);
ImageIcon imagenFondo = new ImageIcon(_image);
j.setIcon(imagenFondo);
j.repaint();
jPanel2.add(j);
this.repaint();
y finalizamos la programacin ahora solo ah que probarlo...
Captura:

DESARROLLO DE APLICACIONES EN WEB

DESARROLLO DE APLICACIONES EN WEB

Você também pode gostar