`
kanpiaoxue
  • 浏览: 1777619 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jgraph快速生成drawio可绘制图

 
阅读更多

 

使用java的jgrapht的库组织的图像快速可视化,该如何做呢?

这里给出一个简洁的办法。

工具:

1、java的graph的库: https://jgrapht.org/

2、JavaScript的可视化在线图工具:https://www.draw.io/

 

用于打印边的类

public class SimpleDefaultEdge extends DefaultEdge {

    /**
     *
     */
    private static final long serialVersionUID = 1870891835682617414L;

    @Override
    public Object getSource() {
        return super.getSource();
    }

    @Override
    public Object getTarget() {
        return super.getTarget();
    }

    /*
     * (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return String.format("%s->%s", this.getSource(), this.getTarget());
    }

}

 

图的组织

public static void test026() throws Exception {
        Graph<Integer, SimpleDefaultEdge> dag =
                new DirectedAcyclicGraph<Integer, SimpleDefaultEdge>(SimpleDefaultEdge.class);
        /**
         * DAG的结构如下,有3个联通子图。
         *
         * <pre>
         *            1     9   10  11
         *        / |   | \ |       |
         *      2   3   4   5       12
         *        \ | / | /
         *          6   7
         *           \ /|
         *            8 13
         * </pre>
         */
        IntStream.rangeClosed(1, 13).forEach(v -> {
            dag.addVertex(v);
        });

        dag.addEdge(1, 2);
        dag.addEdge(1, 3);
        dag.addEdge(1, 4);
        dag.addEdge(1, 5);
        dag.addEdge(9, 5);

        dag.addEdge(2, 6);
        dag.addEdge(3, 6);
        dag.addEdge(4, 6);
        dag.addEdge(4, 7);
        dag.addEdge(5, 7);

        dag.addEdge(6, 8);
        dag.addEdge(7, 8);
        dag.addEdge(7, 13);

        dag.addEdge(11, 12);

        dag.edgeSet().forEach(e -> {
            System.out.println(e);
        });

    }

 

输出 写道
1->2
1->3
1->4
1->5
9->5
2->6
3->6
4->6
4->7
5->7
6->8
7->8
7->13
11->12

 

进入 https://www.draw.io/ 找到菜单“调整图形” -> “插入”-> “高级”-> “从文本...”。 在弹出的对话框里面的select下拉框里面选择“图标”,可以看见里面有范例代码如下:

写道
;Example:
a->b
b->edge label->c
c->a

 我们把刚刚java里面输出的内容更新到里面,如下:

写道
;Example:
1->2
1->3
1->4
1->5
9->5
2->6
3->6
4->6
4->7
5->7
6->8
7->8
7->13
11->12

 点击插入按钮,数据就从jgraph导入到drawio了,实现了可视化。

 

可能导入之后的图形布局看着不是很舒服,可以进行调整。进入菜单“调整图形”->“布局”->"垂直流" ,可以调整布局。也可以在这里进行其他方式的布局调整。

 

 

 

 

分享到:
评论

相关推荐

    jgraph-draw.io

    **jgraph-draw.io** 是一个在线的图形编辑工具,专用于创建和编辑流程图。它基于 **jGraph** 技术,提供了一个用户友好的Web界面,使得非技术人员也能轻松绘制各种流程、图表和组织结构。这个工具的灵活性和易用性使...

    JGraph

    通过JGraph,用户可以轻松地创建各种类型的图表,包括但不限于流程图、网络图、组织结构图等。该功能主要依赖于其强大的绘图引擎,能够支持复杂的图表结构和样式定制。 ##### 2.2 图表交互(Graph Interaction) ...

    jgraph源码+例子

    JGraph是一款强大的图形绘制库,主要用于创建复杂的二维图表和图形用户界面。它是用Java语言编写的,因此可以跨平台运行。这个压缩包“jgraph源码+例子”包含的是JGraph库的源代码以及相关的示例,对于学习和理解...

    Java图形组件 JGraph

    它提供了丰富的功能,让开发者能够轻松地构建可交互的、动态的图形模型,适用于数据可视化、流程图、组织结构图等多种场景。JGraph不仅支持基本的图形绘制,还支持拖放操作、事件处理、布局算法等高级特性,使得图形...

    jgraph

    通过使用SVG(可缩放矢量图形)或VML(矢量标记语言)作为后端渲染技术,jgraph能够兼容各种现代和旧版浏览器。在iteye博客中,作者liujianeye分享了关于如何利用jgraph进行图形绘制和交互实现的一些实践经验和技巧...

    drawio桌面版流程图绘制工具64位.rar

    《Drawio:强大的桌面版流程图绘制工具》 在信息化高度发展的今天,流程图作为一种直观、清晰的表达方式,被广泛应用于项目管理、系统设计、软件开发等多个领域。Drawio,这款优秀的流程图绘制工具,以其简洁的界面...

    JGraph 手册+The JGraph Tutorial

    它提供了丰富的功能,使开发者能够轻松地在应用程序中集成可交互的图形元素,如节点、边和复杂的图布局。JGraph的核心是其直观的API,允许程序员通过简单的代码实现复杂的图形操作。 **JGraph手册内容** JGraph的...

    JGraph组件下载 JGraph.jar组件下载

    JGraph组件下载 JGraph.jar组件下载 javabean组件下载 图像绘制javabean

    JGraph document

    1. **基础教程**:从创建基本的图形节点和边开始,了解如何在JGraph中布局和绘制图形。 2. **高级教程**:学习如何使用自定义图形、事件处理和动画效果,提升图形界面的用户体验。 3. **实战案例**:通过实际项目...

    jgraph官方手册

    - **可扩展性**:通过插件机制,开发者可以轻松地扩展jgraph的功能,满足特定应用场景的需求。 #### 三、深入探讨 - **2.1 图形对象与操作** - **节点与边**:在jgraph中,图形的基本构成单位是节点和边,用户...

    draw.io可配置的图表绘制工具

    这是一个开源项目(但对贡献是封闭的),github链接:https://github.com/jgraph,可以绘制流程图、UML、类图、组织结构图、泳道图、E-R图、思维导图等等 draw.io支持多种方式使用:网页访问、客户端、VSCode插件、...

    JGraph小列子加jar包

    首先,JGraph的核心组件是mxGraph,这是一个灵活且高度可定制的图形编辑框架。它支持各种图形类型,如节点、边和连接,以及复杂的布局算法。通过mxGraph,你可以构建出用于流程图、网络拓扑图、组织结构图等用途的...

    jgraph官方文档

    它提供了多种预定义的形状和样式,以便快速绘制常见的图表元素。 - **3.2 图形交互**:除了基本的可视化功能外,jgraph还允许用户与图表进行互动,例如拖动节点、添加或删除边等操作。这些交互能力极大地增强了图表...

    jgraph源代码

    JGraph不仅提供了基本的图形绘制功能,还支持图形的拖放、缩放、旋转等操作,以及事件处理,如点击、双击、拖动等,这使得开发者能够创建出用户友好且功能强大的可视化应用。 JGraph的开源性质使得开发人员能够查看...

    jgraph的jar包 zip 源代码

    JGraph广泛应用于数据可视化、流程图、网络拓扑图、uml图等场合,尤其是在需要用户交互编辑图形的软件中。例如: - **项目管理工具**:用于展示项目任务间的依赖关系。 - **数据库设计工具**:展示数据库表之间的...

    Swing 实现 JGraph

    - **技术细节**:JGraph采用了许多先进的编程技术和设计模式,如观察者模式、工厂模式等,来提高代码的可维护性和扩展性。 #### 参考文献 由于篇幅限制,此处未列出具体参考文献。建议访问JGraph的官方网站获取更...

    JGRAPH开发jar

    **JGRAPH开发jar详解** JGRAPH是一款强大的图形库,主要用于Java平台上的...无论是数据分析的可视化展示,还是流程图的绘制,JGRAPH都能够满足需求,并且提供了足够的定制空间,让开发者能够打造出个性化的图形界面。

    Jgraph中文讲义

    JGraph 有多个版本,其中 JGraphX(也称为 JGraph Swing)是面向 Swing 应用程序的版本,而 JGraphT 则专注于图理论和算法。JGraph 还有一个开源社区,提供了许多扩展和示例。 **2. JGraph 的图形应用** JGraph 的...

    JGraph中文资料

    JGraph 是一款强大的图形库,主要用于创建流程图和其他类型的图形可视化应用。它为开发者提供了丰富的功能,包括图形的创建、编辑、布局以及交互性。在本文中,我们将深入探讨 JGraph 的核心概念、使用方法以及如何...

    jgraph5&jgraphx

    **JGraph5与JGraphX:图形界面设计的利器** JGraph5和JGraphX是两个在Java开发环境中广泛使用的库,主要用于创建和...无论你是需要创建简单的流程图,还是复杂的网络拓扑图,JGraph5和JGraphX都能成为你的得力助手。

Global site tag (gtag.js) - Google Analytics