JavaFX 2D Shapes SVGPath形状矢量图路径
本文于2053天之前发表,文中内容可能已经过时。
SVG **(可缩放矢量图形)**是一种基于XML的语言,用于定义基于矢量的图形。
在JavaFX中,我们可以通过解析SVG路径来构造图像。这种形状由名为SVGPath的类表示。该类属于包javafx.scene.shape。
通过实例化此类,您可以创建一个通过解析JavaFX中的SVG路径创建的节点。
此类具有名为String数据类型的内容的属性。这表示SVG路径编码的字符串,应从中绘制图像。
要通过解析SVG路径绘制形状,您需要使用此类的名为**setContent()**的方法将值传递给此属性,如下所示 -
1 | setContent(value); |
绘制SVGPath的步骤
要通过在JavaFX中解析SVGPath来绘制形状,请按照下面给出的步骤操作。
第1步:创建一个类
创建一个Java类并继承包javafx.application的Application类,并按如下方式实现此类的**start()**方法。
1 | public class ClassName extends Application { |
第2步:创建SVGPath类的对象
您可以通过解析SVGPath在JavaFX中创建所需的形状。为此,请实例化名为SVGPath的类,该类属于包javafx.scene.shape。您可以按如下方式实例化此类。
1 | //Creating an object of the class SVGPath |
第3步:设置SVGPath
使用**setContent()**方法设置SVG对象的内容。对于此方法,您需要传递SVGPath。使用它,应该以字符串的形式绘制一个形状,如下面的代码块所示。
1 | String path = "M 100 100 L 300 100 L 200 300 z"; |
第4步:创建组对象
在start()方法中,通过实例化名为Group的类来创建组对象,该类属于包javafx.scene。
将上一步中创建的SVGPath(节点)对象作为参数传递给Group类的构造函数。这样做是为了将其添加到组中,如下所示 -
1 | Group root = new Group(svgpath); |
第5步:创建场景对象
通过实例化属于包javafx.scene的名为Scene的类来创建场景。对此类传递上一步中创建的Group对象**(root)**。
除了根对象之外,您还可以传递两个表示屏幕高度和宽度的双参数以及Group类的对象,如下所示。
1 | Scene scene = new Scene(group ,600, 300); |
第6步:设置舞台的标题
您可以使用Stage类的setTitle()方法将标题设置为舞台。所述primaryStage是被传递给场景类作为参数的开始方法Stage对象。
使用primaryStage对象,将场景标题设置为Sample Application,如下所示。
1 | primaryStage.setTitle("Sample Application"); |
第7步:将场景添加到舞台
您可以使用名为Stage的类的方法setScene()将Scene对象添加到舞台。使用此方法添加前面步骤中准备的Scene对象,如下所示。
1 | primaryStage.setScene(scene); |
第8步:显示舞台的内容
显示场景的使用命名的方法的内容显示()的的阶段类,如下所示。
1 | primaryStage.show(); |
第9步:启动应用程序
通过从main x方法调用Application类的静态方法**launch()**来启动JavaFX应用程序,如下所示。
1 | public static void main(String args[]){ |
例
以下是通过使用JavaFX解析SVG路径来生成形状的程序。将此代码保存在名为SVGExample.java的文件中。
1 | import javafx.application.Application; |
使用以下命令从命令提示符编译并执行保存的java文件。
1 | javac SVGExample.java |
在执行时,上述程序生成一个显示三角形的JavaFX窗口,该三角形通过解析SVG路径绘制,如下所示。