Javafx 简明教程
JavaFX - Drawing a Polygon
多边形在地理上被定义为由许多共面的线段从头到尾连接而形成的封闭形状。“多边形”一词源自希腊语,“poly”表示“多”,“gonia”表示“角”。
多边形由两个参数描述,即其边的长度和其内角的度量。
根据边数和角数,有多种类型的多边形。它们如下所列 −
-
如果多边形有三条边,那么它被称为三角形。
-
如果多边形有四条边,那么它被称为四边形。矩形、正方形、平行四边形等形状都是四边形的类型。
-
如果多边形有五条边,那么它被称为五边形。同样,边数为六的称为六边形,边数为七的称为七边形,边数为八的称为八边形等等。
Polygon in JavaFX
在 JavaFX 中,多边形由名为 Polygon 的类表示。该类属于包 javafx.scene.shape.
通过实例化此类,您可以在 JavaFX 中创建一个多边形节点。您需要传入以双数组形式定义多边形的点的 x、y 坐标。
您可以将双数组作为该类的构造函数的参数传递,如下所示 −
Polygon polygon = new Polygon(doubleArray);
或者,通过如下使用 getPoints() 方法 −
polygon.getPoints().addAll(new Double[]{ List of XY coordinates separated by commas });
Steps to Draw Polygon
要在 JavaFX 中绘制多边形,请按照以下给出的步骤进行操作。
Step 1: Creating a Polygon
在 start() 方法内,通过实例化属于 javafx.scene.shape 包中的 Polygon 类来创建 JavaFX 中的多边形。可以按照如下方式实例化此类。
public class ClassName extends Application {
public void start(Stage primaryStage) throws Exception {
//Creating an object of the class Polygon
Polygon hexagon = new Polygon();
}
}
Step 2: Setting Properties to the Polygon
使用 Polygon 类的 getPoints() 方法,指定一个双数组,其中包含必需的多边形(本例中的六边形)各点的 XY 坐标,用逗号分隔,如下所示。
//Adding coordinates to the hexagon
hexagon.getPoints().addAll(new Double[]{
200.0, 50.0,
400.0, 50.0,
450.0, 150.0,
400.0, 250.0,
200.0, 250.0,
150.0, 150.0,
})
Step 3: Adding Polygon Object to Group
在 start() 方法中,通过将上一步创建的多边形对象作为参数值传递给其构造函数,实例化属于 javafx.scene 包的 Group 类。
Group root = new Group(hexagon);
Step 4: Launching Application
创建二维对象后,请按照下面给出的步骤正确启动应用程序:
-
首先,通过将组对象作为其构造函数的参数值传递来实例化名为 Scene 的类。你也可以将应用程序屏幕的尺寸作为可选参数传递给此构造函数。
-
然后,使用 Stage 类的 setTitle() 方法设置阶段标题。
-
现在,使用名为 Stage 的类的 setScene() 方法将 Scene 对象添加到阶段。
-
使用名为 show() 的方法显示场景的内容。
-
最后,借助 launch() 方法启动应用程序。
Example
以下是生成使用 JavaFX 的多边形(六边形)的程序。将此代码保存在名为 PolygonExample.java 的文件中。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class PolygonExample extends Application {
@Override
public void start(Stage stage) {
//Creating a Polygon
Polygon polygon = new Polygon();
//Adding coordinates to the polygon
polygon.getPoints().addAll(new Double[]{
200.0, 50.0,
400.0, 50.0,
450.0, 150.0,
400.0, 250.0,
200.0, 250.0,
150.0, 150.0,
});
//Creating a Group object
Group root = new Group(polygon);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing a Polygon");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
使用以下命令,从命令提示符编译并执行已保存的 java 文件。
javac --module-path %PATH_TO_FX% --add-modules javafx.controls PolygonExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls PolygonExample
执行后,以上程序将生成一个 JavaFX 窗口,显示一个如下所示的多边形。
Example
现在,让我们尝试绘制六边形之外的多边形,比如菱形。将此代码保存在名为 RhombusExample.java 的文件中。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class RhombusExample extends Application {
@Override
public void start(Stage stage) {
//Creating a Polygon
Polygon polygon = new Polygon();
//Adding coordinates to the polygon
polygon.getPoints().addAll(new Double[]{
300.0, 50.0,
450.0, 150.0,
300.0, 250.0,
150.0, 150.0,
});
//Creating a Group object
Group root = new Group(polygon);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing a Polygon");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
使用以下命令,从命令提示符编译并执行已保存的 java 文件。
javac --module-path %PATH_TO_FX% --add-modules javafx.controls RhombusExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls RhombusExample
执行后,以上程序将生成一个 JavaFX 窗口,显示一个如下所示的菱形。