在JavaFX中,有哪些不同的路径元素?

2023年 8月 28日 31.8k 0

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) {
//Drawing the shape
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);
//Creating a Path
Path path = new Path(moveTo, line1, line2, line3, line4, line5);
path.setFill(Color.DARKCYAN);
path.setStrokeWidth(8.0);
path.setStroke(Color.DARKSLATEGREY);
//Preparing the Stage object
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);
}
}

登录后复制

输出

在JavaFX中,有哪些不同的路径元素?

以上就是在JavaFX中,有哪些不同的路径元素?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论