Java uses JGraphT to visualize graphs into a graphical interface for display
Maven coordinates of dependent class libraries:
<dependency>
<groupId>org.jgrapht</groupId>
<artifactId>jgrapht-core</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>org.jgrapht</groupId>
<artifactId>jgrapht-ext</artifactId>
<version>1.5.1</version>
</dependency>
Class library introduction:
JGraphT is a Java library used to represent and manipulate various types of graph structures. It supports multiple types of graphs, including directed graphs, undirected graphs, weighted graphs, etc., and provides a series of algorithms to process these graphs. JGraphT provides a flexible data structure for graphs, allowing users to store and represent graphs in different ways.
The complete Java code for the implementation example is as follows:
import org.jgrapht.Graph;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.SimpleGraph;
import org.jgrapht.nio.Attribute;
import org.jgrapht.nio.DefaultAttribute;
import org.jgrapht.nio.dot.DOTExporter;
import org.jgrapht.traverse.DepthFirstIterator;
import org.jgrapht.traverse.GraphIterator;
import javax.swing.*;
import java.awt.*;
import java.io.StringWriter;
public class GraphVisualizationExample extends JFrame {
private Graph<String, DefaultEdge> graph;
public GraphVisualizationExample() {
//Create a simple undirected graph
graph = new SimpleGraph<>(DefaultEdge.class);
String[] vertices = {"A", "B", "C", "D", "E"};
for (String vertex : vertices) {
graph.addVertex(vertex);
}
graph.addEdge("A", "B");
graph.addEdge("B", "C");
graph.addEdge("C", "D");
graph.addEdge("D", "E");
graph.addEdge("E", "A");
//Create a JPanel for displaying a graphical interface
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
GraphIterator<String, DefaultEdge> iterator = new DepthFirstIterator<>(graph);
while (iterator.hasNext()) {
String vertex = iterator.next();
int x = (int) (Math.random() * getWidth());
int y = (int) (Math.random() * getHeight());
g.drawString(vertex, x, y);
}
}
};
getContentPane().add(panel);
setTitle("Graph Visualization Example");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new GraphVisualizationExample();
}
}
After running the code, a randomly arranged undirected graph interface will be displayed, with vertex coordinates randomly generated and vertex labels displayed on the interface.
Summary:
This article introduces the method of visualizing graphics using the JGraphT library. Firstly, the Maven dependency of JGraphT was introduced, followed by a brief introduction to the library. Next, a complete example was used to demonstrate how to create a simple undirected graph and display the graphical interface. Finally, a summary of the entire process was provided. Using JGraphT makes it easy to create and manipulate various types of graphs, and display them through a graphical interface.