JavaFX - 笔划线帽属性



在几何学中,直线通常是一维图形,宽度可忽略不计,存在于二维平面中。但是,与其他二维图形一样,JavaFX 也提供了增强直线质量的方法。这包括以不同的方式设置其边缘的结构。

直线的端点也称为端帽。默认情况下,这些端帽是尖锐的。但是,使用 JavaFX 提供的各种属性,用户可以更改这些端帽的结构。此属性称为笔划线帽属性。

笔划线帽属性

笔划线帽指定/定义直线的端帽样式。此属性的类型为StrokeLineCap,可以使用 javafx.scene.shape.Shape 类的setStrokeLineCap() 方法设置,如下面的代码块所示:

line.setStrokeLineCap(StrokeLineCap.SQUARE);

笔划线帽可以是:

  • Butt - 在直线末端应用 Butt 线帽 (StrokeLineCap.BUTT)。

  • Square - 在直线末端应用 Square 线帽 (StrokeLineCap.SQUARE)。

  • Round - 在直线末端应用 Round 线帽 (StrokeLineCap.ROUND)。

默认情况下,形状的笔划线帽为方形。以下是具有不同线帽类型的三角形的示意图。(此处应插入示意图)

Stroke Line Cap

示例

让我们来看一个演示在矩形上使用笔划线帽属性的示例。我们不建议在没有边缘的形状上使用此属性。将此文件保存为StrokeLineCapExample.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.StrokeLineCap;
import javafx.scene.paint.Color;
import javafx.stage.Stage;  

public class StrokeLineCapExample extends Application { 
   @Override 
   public void start(Stage stage) {        
      //Creating a Triangle 
      Rectangle rect = new Rectangle(50.0, 50.0, 200.0, 70.0);  

      rect.setFill(Color.BLUE);
      rect.setStroke(Color.BLACK);
      rect.setStrokeWidth(7.0);
      rect.setStrokeLineCap(StrokeLineCap.BUTT);

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

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

输出

执行上述程序后,将生成一个 JavaFX 窗口,显示一个具有 Butt 类型笔划线帽的矩形,如下所示。(此处应插入截图)

Stroke Line Cap Output

请注意,此属性仅应用于直线形状。如果将其用于曲线形状,则结果可能不会显示任何差异。

广告