سؤال

أحاول إنشاء الرسم البياني الذي هو تخطيط الشبكة باستخدام جونغ.و لم أجد كيف هناك على أية حال لإنشاء رسم بياني باستخدام جونغ

شكرا مقدما

هل كانت مفيدة؟

المحلول

أنا لست متأكدا ما إذا كان جونغ مباشرة تدعم جريدلايوت باستخدام أي من تخطيط المديرين.ومع ذلك فمن الممكن لإنشاء التخطيط القائم على الشبكة من خلال إضافة القمم إلى StaticLayout ثم تغيير موقف كل قمة وفقا إحداثياتها في الشبكة.

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);
}
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top