用 JavaFX 或 Swing 画线路图
在软件开发中,画线路图是一个常见的需求。通过线路图,我们可以清晰地展示出点与点之间的连接关系,以及它们之间的距离和方向。Java 提供了两个主要的图形库,JavaFX 和 Swing,可以用于绘制线路图。
JavaFX 画线路图
JavaFX 是 Java 平台的一部分,是一个用于创建富客户端应用程序的图形库。它提供了丰富的图形组件和功能,非常适合用于画线路图。下面是一个使用 JavaFX 画线路图的示例代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
public class LineChartFX extends Application {
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
// 创建线路图上的点
Line line1 = new Line(100, 100, 200, 200);
line1.setStroke(Color.RED);
Line line2 = new Line(200, 200, 300, 100);
line2.setStroke(Color.BLUE);
// 将线路图上的点添加到画布上
root.getChildren().addAll(line1, line2);
Scene scene = new Scene(root, 400, 300);
primaryStage.setTitle("Line Chart using JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在上述代码中,我们首先创建了一个 Pane,它是 JavaFX 中用于布局的容器。然后,创建了两条线路图上的线,并设置它们的起点和终点坐标。最后,将这些线添加到 Pane 中,并将 Pane 添加到场景中,展示出线路图。
Swing 画线路图
Swing 是 Java 提供的另一个图形库,也可以用于绘制线路图。它提供了一些基本的绘图组件和方法,可以用于创建和修改图形对象。下面是一个使用 Swing 画线路图的示例代码:
import javax.swing.*;
import java.awt.*;
public class LineChartSwing extends JFrame {
public LineChartSwing() {
setTitle("Line Chart using Swing");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void paint(Graphics g) {
super.paint(g);
// 创建线路图上的点
g.setColor(Color.RED);
g.drawLine(100, 100, 200, 200);
g.setColor(Color.BLUE);
g.drawLine(200, 200, 300, 100);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new LineChartSwing());
}
}
在上述代码中,我们创建了一个继承自 JFrame 的 LineChartSwing 类,并在其中覆写了 paint 方法。在 paint 方法中,我们使用 Graphics 对象绘制线路图上的线。
总结
通过使用 JavaFX 或 Swing,我们可以轻松地绘制线路图。JavaFX 提供了更丰富的图形组件和功能,而 Swing 则更加轻量级。通过选择合适的图形库,我们可以根据需求绘制出令人满意的线路图。
旅行图示例:
journey
title 旅行图示例
section 起点到终点的旅行路线
中国 --> 美国 --> 英国 --> 法国 --> 中国
无论是 JavaFX 还是 Swing,它们都提供了丰富的绘图功能,可以帮助我们创建出精美的线路图。根据自己的需求和技术要求,选择合适的图形库来完成线路图的绘制任务。无论是用 JavaFX 还是 Swing,都能够满足我们的绘图需求。