用JAVA编写一段图数据结构GUI代码
时间: 2024-05-16 20:15:33 浏览: 92
以下是一个简单的 Java 图形用户界面(GUI),它显示了一个图形数据结构:
```java
import javax.swing.*;
import java.awt.*;
public class GraphGUI extends JFrame {
private Graph graph;
public GraphGUI(Graph graph) {
this.graph = graph;
setTitle("Graph");
setPreferredSize(new Dimension(500, 500));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new GraphPanel());
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private class GraphPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setStroke(new BasicStroke(2));
for (Vertex v : graph.getVertices()) {
int x = v.getX();
int y = v.getY();
g2d.setColor(Color.BLACK);
g2d.fillOval(x - 10, y - 10, 20, 20);
g2d.setColor(Color.WHITE);
g2d.drawString(v.getLabel(), x - 5, y + 5);
for (Edge e : v.getEdges()) {
Vertex w = e.getVertex2();
int x2 = w.getX();
int y2 = w.getY();
g2d.setColor(Color.BLUE);
g2d.drawLine(x, y, x2, y2);
}
}
}
}
}
```
这个 GUI 显示了一个图形数据结构,其中顶点由黑色圆圈表示,并在圆圈中心显示标签。边由蓝色线段表示。在此示例中,我们假设图形数据结构由 `Graph` 类表示,其中每个顶点由 `Vertex` 类表示,每个边由 `Edge` 类表示。在 `GraphGUI` 构造函数中,我们将 `Graph` 对象作为参数传递,并将其存储在实例变量 `graph` 中。然后我们创建一个 `GraphPanel` 对象,并将其添加到 `JFrame` 中。在 `GraphPanel` 中,我们使用 `Graphics2D` 对象绘制图形。对于每个顶点,我们绘制一个黑色圆圈,并在圆圈中心显示标签。对于每个边,我们绘制一条蓝色线段,连接边的两个顶点。
阅读全文