1
정을 사용하여 그리드 레이아웃 인 그래프를 만들려고합니다. 와 내가 JUNG 직접 레이아웃 매니저 중 하나를 사용하여 GridLayout과를 지원하는지 모르겠습니다 사전정에서 그리드 레이아웃을 만드는 법
정을 사용하여 그리드 레이아웃 인 그래프를 만들려고합니다. 와 내가 JUNG 직접 레이아웃 매니저 중 하나를 사용하여 GridLayout과를 지원하는지 모르겠습니다 사전정에서 그리드 레이아웃을 만드는 법
에 JUNG
감사
를 사용하여 그래프를 만들 어쨌든 거기에 어떻게 찾을 수 없습니다. 그러나 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);
}
}