JGraph: Exportar grafos a archivos de imagen

JGraph

JGraph

Buscando por la web la solucion a este caso especifico con Jgraph pero como es comun nunca leo el manual y me gusta descubrir las cosas de forma mas rapida por medio de san google, pero esta vez no me funciono. Pero weno halle la solucion y la agrego a continuacion (sacada del manual jejeje). Por cierto JGraph es una libreria para generar grafos y diagramas muy vistosos por cierto (colores, formas, degradado en colores, etc.) bastante poderoso se puede hasta modificar el diagrama como si estuvieramos en Editor grafico (MS Visio, Dia, etc…).

Ejemplo de JGraph

Ejemplo de JGraph

public void ExportarImagen(String path, String ext){

try {
JGraph graph1 = getGraph(); // tomamos el valor actual del grafo
FileOutputStream out = new FileOutputStream(path);// archivo de salida
Color bg = null; // modificar el fondo de la imagen
bg = graph1.getBackground(); //obtenemos el fondo del grafo
Image imgs = graph1.createImage(200,200);// nueva imagen, dimensiones del la imagen
graph1.refresh();
BufferedImage img = graph1.getImage(null, 0);
//ImageIO.write(instancia de imagen, extension de la imagen, archivo de salida);
ImageIO.write(img, ext, out);
out.flush();
out.close();
} catch (IOException ex) {
Logger.getLogger(Grafico.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(ex.getMessage());
}
}

// si solo deseamos crear la imagen sin mostrar nada en Frames u otro contenedor debemos de cargarla en un objeto para que se genere la imagen, la solucion mas sencilla es cargarla en un Jpanel que no se muestre y listo…..
public void cargarGrafo(){
JPanel panel = new JPanel();
panel.setDoubleBuffered(false);
panel.add( graph );
panel.setVisible( true );
panel.setEnabled( true );
panel.addNotify();   // workaround to pack() on a JFrame
panel.validate();
}
// nos devuelve el valor del objeto JGraph actual
public JGraph getGraph(){
return graph;
}

Es bastante interesante JGraph ya que ademas se puede exportar a formatos como .SVG (Graficos vectoriales), XML, y otros

Para mas informacion pueden revisar el manual de JGraph (para exportar a otros formatos chequen la pagina 98).

Pueden descargar el .jar y la documentacion desde aqui