Javafx 简明教程

JavaFX - Stroke Line Join Property

JavaFX 不仅支持一次绘制单个 2D 形状,还允许您加入多个 2D 形状对象以形成另一个更大的对象。例如,您可以使用 Rectangle 类绘制矩形对象,还可以将四条线对象连接在一起以形成一个矩形。

在这种情况下,当使用多条线来形成 2D 形状时,JavaFX 支持各种属性应用于这些线,同时将它们组合在一起。其中一个属性是笔划线条连接属性。

Stroke Line Join Property

笔划线条连接属性用于指定用于将两个线对象组合在一起形成另一形状时使用的关节的形状。

此属性的类型为 StrokeLineJoin ,它表示形状边缘使用的连接类型。

笔划线条连接有三种类型。它由 StrokeLineJoin 的三个常量表示,如下所示 −

  1. Bevel − 在斜角连接中,相交的外部边缘用线段连接。

  2. Miter − 在平切连接中,相交的外部边缘连接在一起形成一个锐边。

  3. Round − 在圆弧连接中,相交的外部边缘通过舍入角进行连接,其半径恰好等于连接宽度的一半。

按照如下方法通过 setStrokeLineJoin() 方法可以设置笔划的线条连接方式:

path.setStrokeLineJoin(StrokeLineJoin.[Type_of_Join]);

Type_of_Join 可以使用下面任一关键词设置:

  1. StrokeLineJoin.BEVEL - 将笔划线条连接设置成斜角连接。

  2. StrokeLineJoin.MITER - 将笔划线条连接设置成直角连接。

  3. StrokeLineJoin.ROUND - 将笔划线条连接设置成圆角连接。

默认情况下,图形的笔划线条连接是直角连接。下面是具有不同线条连接类型的三角形的图表:

stroke line join

Example

让我们通过一个示例来展示三角形的笔划线条连接属性的使用方式。使用 StrokeLineJoinExample.java 名称保存此文件。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.StrokeLineJoin;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class StrokeLineJoinExample extends Application {
   @Override
   public void start(Stage stage) {
      //Creating a Triangle
      Polygon triangle = new Polygon();

      //Adding coordinates to the polygon
      triangle.getPoints().addAll(new Double[]{
         100.0, 50.0,
         170.0, 150.0,
         100.0, 250.0,
      });
      triangle.setFill(Color.BLUE);
      triangle.setStroke(Color.BLACK);
      triangle.setStrokeWidth(7.0);
      triangle.setStrokeLineJoin(StrokeLineJoin.BEVEL);

      //Creating a Group object
      Group root = new Group(triangle);

      //Creating a scene object
      Scene scene = new Scene(root, 300, 300);

      //Setting title to the Stage
      stage.setTitle("Drawing a Triangle");

      //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 StrokeLineJoinExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls StrokeLineJoinExample

Output

执行后,上述程序将生成一个 JavaFX 窗口,其中显示一个具有斜角笔划线条连接的三角形,如下所示:

stroke line join output

Example

让我们通过一个示例来展示圆角的笔划线条连接属性在矩形上的使用方式。使用 StrokeLineJoinRectangle.java 名称保存此文件。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.StrokeLineJoin;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class StrokeLineJoinRectangle extends Application {
   @Override
   public void start(Stage stage) {
      //Creating a Rectangle
      Polygon rectangle = new Polygon();

      //Adding coordinates to the polygon
      rectangle.getPoints().addAll(new Double[]{
         100.0, 50.0,
         170.0, 50.0,
         170.0, 250.0,
         100.0, 250.0,
      });
      rectangle.setFill(Color.ORANGE);
      rectangle.setStroke(Color.BLACK);
      rectangle.setStrokeWidth(5.0);
      rectangle.setStrokeLineJoin(StrokeLineJoin.ROUND);

      //Creating a Group object
      Group root = new Group(rectangle);

      //Creating a scene object
      Scene scene = new Scene(root, 300, 300);

      //Setting title to the Stage
      stage.setTitle("Drawing a Rectangle");

      //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 StrokeLineJoinRectangle.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls StrokeLineJoinRectangle

Output

执行后,上述程序将生成一个 JavaFX 窗口,其中显示一个具有斜角笔划线条连接的三角形,如下所示:

strokelinejoin rectangle