JavaFX 中的各种路径元素是什么?

javaobject oriented programmingprogramming更新于 2025/10/9 22:04:17

javafx.scene.shape 包提供了可用于绘制各种 2D 形状的类,但这些只是基本形状,如线、圆、多边形和椭圆等……因此,如果您想绘制复杂的自定义形状,则需要使用 Path 类。

Path 类

Path 类表示形状的几何轮廓,您可以使用此类绘制自定义路径。

要绘制自定义路径,JavaFX 提供了各种路径元素,所有这些元素都可以作为 javafx.scene.shape  包中的类使用。

  • LineTo − 这是表示路径元素 line 的类。它可以帮助您从当前坐标到指定(新)坐标绘制一条直线。

  • HlineTo − 该类表示路径元素水平线。它可以帮助您从当前坐标到指定(新)坐标绘制一条水平线。

  • VLineTo − 该类表示路径元素垂直线。它可以帮助您从当前坐标到指定(新)坐标绘制一条垂直线。

  • QuadCurveTo − 该类表示路径元素二次曲线。它可以帮助您从当前坐标到指定(新)坐标绘制一条二次曲线。

  • CubicCurveTo −这个类表示路径元素三次曲线。它可以帮助您从当前坐标到指定(新)坐标绘制三次曲线。

  • ArcTo − 这个类表示路径元素弧。它可以帮助您从当前坐标到指定(新)坐标绘制弧。

  • MoveTo − 使用此类,您可以将路径从当前坐标移动到新坐标。

使用路径元素创建路径

Path 类包含一个可观察列表,其中包含当前路径的路径元素。因此要绘制路径 −

  • 实例化所需的 PathElement 类。

  • 使用 setter 方法设置每个路径的属性,或将它们作为参数传递给构造函数。

  • 实例化 Path 类。

  • 使用 getElements() 方法获取上面创建的 Path 的可观察列表对象。

  • 使用 add() 或 addAll() 方法按所需顺序将所有路径元素对象添加到可观察列表中。

  • 最后,将路径添加到 Group 对象。

注意 −您还可以将路径元素传递给 Path 类的构造函数。

示例

以下 JavaFX 示例使用 LineTo 路径元素创建路径 −

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
public class PathElementsExample extends Application {
   public void start(Stage stage) {
      //绘制形状
      MoveTo moveTo = new MoveTo(208, 71);
      LineTo line1 = new LineTo(421, 161);
      LineTo line2 = new LineTo(226,232);
      LineTo line3 = new LineTo(332,52);
      LineTo line4 = new LineTo(369, 250);
      LineTo line5 = new LineTo(208, 71);
      //创建路径
      Path path = new Path(moveTo, line1, line2, line3, line4, line5);
      path.setFill(Color.DARKCYAN);
      path.setStrokeWidth(8.0);
      path.setStroke(Color.DARKSLATEGREY);
      //准备舞台对象
      Group root = new Group(path);
      Scene scene = new Scene(root, 595, 300, Color.BEIGE);
      stage.setTitle("Drawing an arc through a path");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

输出


相关文章


有用资源