pom.xml
<jgrapht.version>1.3.1</jgrapht.version> <!-- https://mvnrepository.com/artifact/org.jgrapht/jgrapht-ext --> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-ext</artifactId> <version>${jgrapht.version}</version> </dependency> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-io</artifactId> <version>${jgrapht.version}</version> </dependency> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-core</artifactId> <version>${jgrapht.version}</version> </dependency>
自定义Edge
public class UDFEdge extends DefaultEdge{ /** * */ private static final long serialVersionUID = 8239849745413195857L; /** * */ public UDFEdge() { super(); } @Override public String toString() { return StringUtils.EMPTY; } }
jgraph的图形化,画出png的图片。
public static void drawGraph() throws Exception { File imgFile = new File( "temp/jgrapht/hello1.png"); if (imgFile.exists()) { imgFile.delete(); } imgFile.createNewFile(); DefaultDirectedGraph<String, UDFEdge> g = new DefaultDirectedGraph<String, UDFEdge>(UDFEdge.class); List<String> vertices = IntStream.rangeClosed(1, 20).mapToObj(i -> { return String.format("v%d", i); }).collect(Collectors.toList()); Graphs.addAllVertices(g, vertices); g.addEdge("v1", "v2"); g.addEdge("v2", "v3"); g.addEdge("v2", "v4"); g.addEdge("v3", "v5"); g.addEdge("v2", "v5"); g.addEdge("v5", "v6"); g.addEdge("v6", "v7"); g.addEdge("v6", "v8"); g.addEdge("v6", "v9"); g.addEdge("v6", "v10"); g.addEdge("v8", "v11"); g.addEdge("v8", "v12"); g.addEdge("v8", "v13"); g.addEdge("v14", "v13"); g.addEdge("v15", "v13"); g.addEdge("v13", "v16"); g.addEdge("v16", "v17"); g.addEdge("v16", "v18"); g.addEdge("v16", "v19"); g.addEdge("v20", "v19"); g.addEdge("v4", "v13"); g.addEdge("v4", "v20"); JGraphXAdapter<String, UDFEdge> graphAdapter = new JGraphXAdapter<String, UDFEdge>(g); // mxIGraphLayout layout = new mxCircleLayout(graphAdapter); mxIGraphLayout layout = new mxHierarchicalLayout(graphAdapter); layout.execute(graphAdapter.getDefaultParent()); BufferedImage image = mxCellRenderer.createBufferedImage(graphAdapter, null, 2, Color.WHITE, true, null); ImageIO.write(image, "PNG", imgFile); }
相关推荐
### JGraph:强大的图形可视化与交互工具 #### 一、简介 **JGraph**是一款用于创建、编辑和显示图表的高性能、轻量级Java库。它不仅提供了丰富的API来实现复杂的图表绘制,还支持多种布局算法和数据分析功能,使得...
2. **基本图形元素**:详细讲解了JGraph中的节点(Vertices)和边(Edges),包括它们的创建、属性设置和可视化定制。 3. **模型与视图**:JGraph采用MVC(模型-视图-控制器)架构,手册会解释如何定义模型数据,...
jgraph广泛应用于业务流程建模、数据分析可视化、UI设计原型、教学演示以及科学计算等领域,为各种类型的应用程序提供强大的图形支持。 9. **与其他工具集成:** jgraph可以与后端框架(如Node.js、Django等)、...
JGraph是一款强大的图形绘制库,主要...通过深入学习和实践,你可以利用JGraph创建出富有表现力的可视化应用,无论是用于数据分析、流程设计还是其他领域。这个压缩包中的源代码和示例将是你探索JGraph世界的重要起点。
**正文** JGraph是一款强大的图形库,主要用于创建和编辑交互式的图表和图形用户界面。它在Java编程语言中实现,提供了丰富的API和功能,使得...通过不断地实践和探索,你会发现JGraph是一个无限可能的可视化工具。
JGraph不仅提供了基本的图形绘制功能,还支持图形的拖放、缩放、旋转等操作,以及事件处理,如点击、双击、拖动等,这使得开发者能够创建出用户友好且功能强大的可视化应用。 JGraph的开源性质使得开发人员能够查看...
JGraph 是一款用于创建图形界面和数据可视化工具的 Java 库。它允许开发者在应用程序中构建交互式的图表和图形,提供图形布局、分析和用户交互功能。JGraph 的核心特性包括: 1. **图形可视化**:JGraph 提供了丰富...
JGraph以其直观的API、丰富的图形元素和强大的功能,使得在Java应用中构建可视化组件变得简单易行。 **二、JGraph的核心特性** 1. **图形对象与模型**:JGraph基于模型-视图-控制器(MVC)设计模式,其中模型负责...
JGraph 是一款强大的图形库,主要用于创建流程图和其他类型的图形可视化应用。它为开发者提供了丰富的功能,包括图形的创建、编辑、布局以及交互性。在本文中,我们将深入探讨 JGraph 的核心概念、使用方法以及如何...
JGraph广泛应用于数据可视化、流程图、网络拓扑图、uml图等场合,尤其是在需要用户交互编辑图形的软件中。例如: - **项目管理工具**:用于展示项目任务间的依赖关系。 - **数据库设计工具**:展示数据库表之间的...
Java图形组件JGraph是一款强大的...无论你是想构建数据可视化工具、流程设计器还是其他需要图形界面的应用,JGraph都能成为你的得力助手。通过熟练掌握JGraph的API和设计理念,你将能构建出具有专业水准的图形应用。
- **图形可视化**:通过jgraph,用户可以轻松地将数据转换成直观的图形表示形式,如流程图、组织结构图等。 - **图形交互**:jgraph支持丰富的用户交互方式,例如拖拽节点、调整边的位置等。 - **图形布局**:...
JGraph作为一个专门为Java Swing设计的图形组件,基于图论数学理论以及Swing用户接口库,实现了对图的可视化处理。这里提到的“图”是指图论中的定义,而不是函数图像。 在设计与实现JGraph时,遵循了以下原则: -...
**JGRAPH开发jar详解** JGRAPH是一款强大的图形库,主要用于Java平台上的...无论是数据分析的可视化展示,还是流程图的绘制,JGRAPH都能够满足需求,并且提供了足够的定制空间,让开发者能够打造出个性化的图形界面。
**图形化开源软件jgraph详解** `jgraph`是一款强大的图形化开源软件,主要用于创建复杂的图表和图形用户界面。在后台或JApplet开发中,它提供了一套完整的解决方案,帮助开发者实现直观、动态的图形展示。这款工具...
- **3.2 图形交互**:除了基本的可视化功能外,jgraph还允许用户与图表进行互动,例如拖动节点、添加或删除边等操作。这些交互能力极大地增强了图表的灵活性和可用性。 - **3.3 图形布局**:自动布局是jgraph的一大...
1. **图形可视化**:JGraph支持多种图形元素的显示,包括节点、边、标签等,能够处理复杂的层次结构和关系网络,使数据以直观的方式呈现出来。 2. **图形交互**:用户可以通过拖拽、缩放、滚动等操作与图形进行...
JGraph的核心在于其图模型(GraphModel),它定义了节点(Vertices)和边(Edges)的关系,以及它们的可视化表示。 二、JGraph组件 1. JGraphModel:这是JGraph的核心,用于存储和管理图的数据结构。它包含了节点...
这个工具的灵活性和易用性使其在IT行业中非常受欢迎,特别是对于那些需要快速可视化工作流程、系统架构或项目管理的人。 **jGraph** 是一个强大的JavaScript库,主要用于在Web浏览器中展示和操作图形。它提供了丰富...
JGraph组件下载 JGraph.jar组件下载 javabean组件下载 图像绘制javabean