是否有任何摆动组件可以做到这一点?
(有些工具可以通过运行外部命令来实现, 由于这些工具的结果是图像文件,它们不适合动态更新, 这将是我的用例)
答案 0 :(得分:3)
我的回答只是一个临时建议。有一个很好的工具叫Quick Sequence Diagram Editor。开箱即用它将为您提供所需的Swing组件和相当不错的DSL。
也许你可能更容易只生成一个文本图表形式,让图表编辑器后面的逻辑完成剩下的工作(我认为一些模板引擎可能会更简化任务)。
DSL示例:
bfs:BFS[a]
/queue:FIFO
someNode:Node
node:Node
adjList:List
adj:Node
bfs:queue.new
bfs:someNode.setLevel(0)
bfs:queue.insert(someNode)
[c:loop while queue != ()]
bfs:node=queue.remove()
bfs:level=node.getLevel()
bfs:adjList=node.getAdjacentNodes()
[c:loop 0 <= i < #adjList]
bfs:adj=adjList.get(i)
bfs:nodeLevel=adj.getLevel()
[c:alt nodeLevel IS NOT defined]
bfs:adj.setLevel(level+1)
bfs:queue.insert(adj)
--[else]
bfs:nothing to do
[/c]
[/c]
[/c]
bfs:queue.destroy()
请注意,我实际上建议将sdedit组件嵌入到您的应用程序中,但不要将其用作外部工具。顺便说一下,许可证非常宽松。