Pregunta

Estoy intentando crear un gráfico que es diseño de la red mediante el uso de JUNG. y no pude encontrar la forma, ¿Hay alguna forma para crear un gráfico mediante el uso de JUNG

Gracias de antemano

¿Fue útil?

Solución

No estoy seguro de si JUNG apoya directamente a un GridLayout usando cualquiera de sus controladores de distribución. Sin embargo, es posible crear un diseño basado en rejilla mediante la adición de vértices a un StaticLayout y luego cambiando la posición de cada vértice de acuerdo con sus coordenadas en la rejilla.

import edu.uci.ics.jung.algorithms.layout.*;
import edu.uci.ics.jung.graph.*;
import edu.uci.ics.jung.visualization.*;
import edu.uci.ics.jung.visualization.control.*;
import java.awt.*;
import javax.swing.*;

public class JungGridLayout extends JFrame {

Graph graph;
StaticLayout layout;
VisualizationViewer vv;

public static void main(String[] args) {
    JungGridLayout g = new JungGridLayout(25,5,5);
}

public JungGridLayout(int numNodes, int numRows, int numColumns) {
    graph = new SparseMultigraph();
    layout = new StaticLayout(graph);

    //distance between the nodes
    int distX=100;
    int distY=100;

    //idea is to add the vertices and change and the position of each vertex to a coordinate in a grid
    for (int n=0;n<numNodes;n++) {
        graph.addVertex(String.valueOf(n));
    }

    int operatingNode = 0;

    for (int i=0;i<numRows;i++) {
        for (int j=0;j<numColumns;j++) {
            layout.setLocation(String.valueOf(operatingNode++), i*distX, j*distY);
        }
    }        

    createVisualization();
    createFrame();
}

public void createFrame() {
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.pack();
    this.setVisible(true);
}

public void createVisualization() {
    vv = new VisualizationViewer(layout, new Dimension(800, 600));

    //zooming and transforming
    GraphZoomScrollPane zoomPane = new GraphZoomScrollPane(vv);
    DefaultModalGraphMouse graphMouse = new DefaultModalGraphMouse();
    vv.setGraphMouse(graphMouse);

    this.getContentPane().add(zoomPane);
}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top