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

請注意,此屬性僅應用於直線形狀。如果將其用於曲線形狀,則結果可能不會顯示任何差異。

廣告