java - 导入 GraphML 以在 JGraphX 中创建图形

标签 java graph jgraphx graphml

对于我从事的项目,我正在获取 GraphML 格式的信息(我也可以更改 graphML 文件)并且我想根据该信息创建所需的图形,我能够获得正确的布局,通过使用 mxGraphMlCodec.decode(doc, graph) 方法具有适当的边和节点,但生成的图缺少 graphML 文件提供的边标签的附加信息。

我找不到以这种方式转换为图形的 graphML 文件的任何示例。 我刚刚遵循了 GraphML primer 中所述的 graphML 文件指南。创建 graphML 文件。

这是 GraphML 代码:

<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
<key id="d1" for="edge" attr.name="edgeData" attr.type="double"/>
<graph id="DTMC" edgedefault="directed">
<node id="0"/>
<edge source="0" target="1">
<data key="d1">0.5</data>
</edge>
<edge source="0" target="2">
<data key="d1">0.5</data>
</edge>
<node id="1"/>
<edge source="1" target="3">
<data key="d1">0.5</data>
</edge>
<edge source="1" target="4">
<data key="d1">0.5</data>
</edge>
<node id="2"/>
<edge source="2" target="5">
<data key="d1">0.5</data>
</edge>
<edge source="2" target="6">
<data key="d1">0.5</data>
</edge>
<node id="3"/>
<edge source="3" target="1">
<data key="d1">0.5</data>
</edge>
<edge source="3" target="7">
<data key="d1">0.5</data>
</edge>
<node id="4"/>
<edge source="4" target="8">
<data key="d1">0.5</data>
</edge>
<edge source="4" target="9">
<data key="d1">0.5</data>
</edge>
<node id="5"/>
<edge source="5" target="10">
<data key="d1">0.5</data>
</edge>
<edge source="5" target="11">
<data key="d1">0.5</data>
</edge>
<node id="6"/>
<edge source="6" target="2">
<data key="d1">0.5</data>
</edge>
<edge source="6" target="12">
<data key="d1">0.5</data>
</edge>
<node id="7"/>
<edge source="7" target="7">
<data key="d1">1.0</data>
</edge>
<node id="8"/>
<edge source="8" target="8">
<data key="d1">1.0</data>
</edge>
<node id="9"/>
<edge source="9" target="9">
<data key="d1">1.0</data>
</edge>
<node id="10"/>
<edge source="10" target="10">
<data key="d1">1.0</data>
</edge>
<node id="11"/>
<edge source="11" target="11">
<data key="d1">1.0</data>
</edge>
<node id="12"/>
<edge source="12" target="12">
<data key="d1">1.0</data>
</edge>
</graph>
</graphml>

我只是修改 JGraphX 示例文件夹中的 ClickHandle.java 文件,以便使图形可视化。

最佳答案

jgraphx 使用“值”属性作为边的标签:

<mxCell edge="1" id="4" parent="1" style="defaultEdge" source="2" target="3" value="test label">
  <mxGeometry>
    ...
  </mxGeometry>
</mxCell>

您可以尝试添加一个名为“value”的属性。

关于java - 导入 GraphML 以在 JGraphX 中创建图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828600/

相关文章:

javax.jms.JMSSecurityException : MQJMS2008: failed to open MQ queue

java - 在 Java 中创建一个 Nohup 进程

algorithm - 无向图中最短环的长度

ajax - 微软认证 : How to refresh access token using ajax post?

algorithm - 具有加权边的树的中心(可能为负)

java - 使用 JGraphx 重叠边缘

java - 使用 jmapframe 在 map 上制作动画 - geotools

java - 导入 JavaFX 包以通过命令行/CMD 运行

java - JGraphX 图形未显示在 JPanel 中

java - 在 jGraphX 图形编辑器中拖放一组单元格