Je suis en train de créer un graphique qui est GRID mise en page en utilisant JUNG. et je ne pouvais pas trouver comment, est-il de toute façon de créer un graphique en utilisant JUNGComment créer la mise en page Grille en JUNG
Merci à l'avance
Je suis en train de créer un graphique qui est GRID mise en page en utilisant JUNG. et je ne pouvais pas trouver comment, est-il de toute façon de créer un graphique en utilisant JUNGComment créer la mise en page Grille en JUNG
Merci à l'avance
Je ne suis pas sûr que JUNG prend directement en charge un GridLayout en utilisant l'un de ses gestionnaires de mise en page. Cependant, il est possible de créer une mise en page sur la base de la grille par l'ajout de sommets à un StaticLayout puis changeant la position de chaque sommet en fonction de ses coordonnées dans le réseau.
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);
}
}