2014-03-14 3 views
1

mxgraph을 사용하여 그래프를 생성하는 프로그램을 작성하고 있습니다. 우리의 요구 사항은 "이미지를 정점으로 표시해야합니다."입니다. 많은 코드를 시도했지만 이미지를 가져올 수 없습니다. (이미지의 경로가 맞다.) 우리는 노드의 모양을 깍아 내리고 색상을 추가 할 수 있지만 이미지를 꼭지점으로 포함 할 수는 없다. 우리 코드는 다음과 같습니다.mxgraph를 사용하여 사용자 정점을 설정하는 방법

  Document xmlDocument = mxDomUtils.createDocument(); 
     Element sourceNode = xmlDocument.createElement("Source"); 
     Element targetNode = xmlDocument.createElement("Target"); 
     Element subtargetNode = xmlDocument.createElement("Subtarget"); 
     mxGraph graph = new mxGraph(); 
     Object parent = graph.getDefaultParent(); 
     graph.getModel().beginUpdate(); 
     try{ 
       Object v1 = graph.insertVertex(parent, null, "source", 20, 20,80, 30,"shape=ellipse"); 
       Object v2 = graph.insertVertex(parent, null, "destination", 200, 20,80, 30,"shape=image;image=H:\\mywork\\mxgraph\\bin\\mypack\\bg2.jpg"); 
       graph.insertEdge(parent, null, "", v1,v2,"startArrow=none;endArrow=diamond;strokeWidth=4;strokeColor=#66FF00"); 
     } 

이미지를 정점으로 사용하려면 위의 코드에서 해결해야 할 부분을 참조하십시오.

답변

1

이미지의 경로를 제외하고 코드에서 아무런 문제가 보이지 않습니다. 자신감이 있어도 이미지의 경로를 교차 확인하십시오. 개발자 도구에서 열어 실제로 이미지에 액세스 할 수 있는지 여부를 확인하십시오. URL에서 직접 이미지에 액세스하십시오.

여기 mxCell에서 스타일을 적용하는 데 권장되는 방법이 있습니다.

Document xmlDocument = mxDomUtils.createDocument(); 
    Element sourceNode = xmlDocument.createElement("Source"); 
    Element targetNode = xmlDocument.createElement("Target"); 
    Element subtargetNode = xmlDocument.createElement("Subtarget"); 
    mxGraph graph = new mxGraph(); 
    Object parent = graph.getDefaultParent(); 

    var style = new Object(); 
     style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_IMAGE; 
     style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter; 
     style[mxConstants.STYLE_IMAGE] = 'images/bg2.jpg'; 
     style[mxConstants.STYLE_FONTCOLOR] = '#FFFFFF'; 
     graph.getStylesheet().putCellStyle('image', style) 

    graph.getModel().beginUpdate(); 
    try{ 
      Object v1 = graph.insertVertex(parent, null, "source", 20, 20,80, 30,"shape=ellipse"); 
      Object v2 = graph.insertVertex(parent, null, "destination", 200, 20,80, 30,"image"); 
      graph.insertEdge(parent, null, "", v1,v2,"startArrow=none;endArrow=diamond;strokeWidth=4;strokeColor=#66FF00"); 
    } 
관련 문제