JFrame에서 동적으로 셀을 정렬 할 수 있도록 계층 적 레이아웃이있는 mxGraph를 가운데에 배치하려고합니다. jFrame을 렌더링 할 때마다 mxGraph가 프레임의 왼쪽 위 모서리에 그려지고 그래프의 위치를 수정할 수있는 방법을 찾을 수 없습니다. 어떻게이 일을 완수합니까?JFrame의 가운데 mxGraph
//f.getContentPane().add(BorderLayout.CENTER, graphComponent);
f.add(graphComponent, new GridBagConstraints());
왜이 작품을 이해하기 :
이JFrame f = new JFrame();
f.setLayout(new GridBagLayout());
다음 기본 제약 조건을 사용하여 프레임에 구성 요소를 추가
public class Test {
public Test() {
Object v1;
Object v2;
Object v3;
JFrame f = new JFrame();
f.setSize(500, 500);
f.setLocation(300, 200);
mxGraph graph = new mxGraph();
mxGraphComponent graphComponent = new mxGraphComponent(graph);
f.getContentPane().add(BorderLayout.CENTER, graphComponent);
f.setVisible(true);
Object parent = graph.getDefaultParent();
graph.getModel().beginUpdate();
try {
v1 = graph.insertVertex(parent, null, "node1", 100, 100, 80, 30);
v2 = graph.insertVertex(parent, null, "node2", 100, 100, 80, 30);
v3 = graph.insertVertex(parent, null, "node3", 100, 100, 80, 30);
graph.insertEdge(parent, null, "Edge", v1, v2);
graph.insertEdge(parent, null, "Edge", v2, v3);
} finally {
graph.getModel().endUpdate();
}
// define layout
mxIGraphLayout layout = new mxHierarchicalLayout(graph);
// layout using morphing
graph.getModel().beginUpdate();
try {
layout.execute(graph.getDefaultParent());
} finally {
graph.getModel().endUpdate();
// fitViewport();
}
}
public static void main(String[] args) {
Test t = new Test();
}
}
이 방법은 그래프를 가운데에 배치하지만 mxGraph 주위에 회색 배경을 제공합니다. 실제로 렌더링되는 캔버스 내에서 그래프를 중앙에 배치 할 생각이었습니다. 어떻게 알았습니까? –
mxGraph가 무엇인지 모르겠습니다. 도움이 더 필요하면 문제를 보여주는 [SSCCE] (http://www.sscce.org/)를 게시하십시오. 물론 'SSCCE'는 타사 구성 요소가 아닌 표준 Swing 구성 요소를 사용해야하므로 사람들이 코드를 실행하여 설명하려고하는 동작을 볼 수 있습니다. – camickr