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 (){ }
/* Crea el grafico */
public void crear_grafico_de_barras(Dimension d, int[] v, String[] arg1, String arg2[],String[] data){
this.d= d;
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
//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);
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);
}
}
}
}