Javafx 简明教程

JavaFX - Stroke Width Property

在前面的章节中,我们了解了各种 2D 形状以及如何在 JavaFX 应用程序中绘制它们。但是,为了提高用户体验,有必要使应用程序尽可能有吸引力。这还包括增强 JavaFX 应用程序中 2D 形状的外观和质感。

JavaFX 提供了一组属性用于此目的。它们用于提高应用程序中形状的质量。在本章中,我们将详细了解 Stroke Width 属性。

Stroke Width Property

Stroke Width 属性用于设置 2D 形状边界线的粗细。此属性为 double 类型,它表示形状边界线的宽度。可以使用 setStrokeWidth() 方法按如下方式设置笔触宽度 −

Path.setStrokeWidth(3.0)

默认情况下,形状笔画的值为 1.0 。以下是具有不同笔触宽度的三角形图。

stroke width

Example

在此示例中,我们将尝试创建一个 2D 形状(例如圆),并为其笔触宽度设置一个值。将此文件保存为 StrokeWidthExample.java

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Shape;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class StrokeWidthExample extends Application {
   @Override
   public void start(Stage stage) {
      //Creating a Circle
      Circle circle = new Circle(150.0f, 150.0f, 50.0f);

      circle.setFill(Color.WHITE);
      circle.setStroke(Color.BLACK);
      circle.setStrokeWidth(6.0);

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

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

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

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

Output

在执行时,上述程序生成一个 JavaFX 窗口,显示一个笔触宽度为以下内容的圆形。

stroke width output

Example

现在,让我们尝试绘制一个宽度相对较大的三角形形状,并观察结果。将此文件保存为 StrokeWidthTriangle.java

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

public class StrokeWidthTriangle 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[]{
         150.0, 150.0,
         220.0, 175.0,
         150.0, 200.0,
      });

      triangle.setFill(Color.WHITE);
      triangle.setStroke(Color.BLACK);
      triangle.setStrokeWidth(100.0);

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

      //Creating a scene object
      Scene scene = new Scene(root, 600, 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 StrokeWidthTriangle.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls StrokeWidthTriangle

Output

执行时,上述程序会生成一个 JavaFX 窗口,其中显示了一个描边宽度相对较大的三角形,如下所示。

strokewidthtriangle