JavaFX - 描邊屬性



Stroke Fill 屬性用於更改 2D 物件本身的顏色。但是,我們也可以更改 2D 物件邊界的顏色。

在 JavaFX 中,建立 2D 物件時,如果要提高形狀的質量,只有兩個部分可以操作;即形狀的封閉區域和形狀的邊界。因此,JavaFX 提供的屬性包括設計這兩個部分。

在本章中,我們將詳細瞭解 Stroke 屬性。

Stroke 屬性

JavaFX 中的 Stroke 屬性用於更改形狀邊界的顏色。此屬性的型別為 Paint,它表示形狀邊界線的顏色。可以使用 setStroke() 方法為此屬性設定值。此方法是 javafx.scene.paint 包的一部分,並以 Color 物件作為引數值,如下所示:

path.setStroke(Color.RED)

預設情況下,描邊的顏色為黑色。以下是具有不同描邊顏色的三角形的示意圖。

Stroke

示例

我們將看到一個示例,演示如何在 JavaFX 中為 2D 形狀的邊界著色。在這裡,我們繪製一個 2D 形狀,例如矩形。預設情況下,矩形將以黑色著色;我們將嘗試將其邊界顏色更改為 Violet。將檔案儲存為 StrokeExample.java

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

public class StrokeExample extends Application { 
   @Override 
   public void start(Stage stage) {        
      //Creating a Rectangle 
      Rectangle rectangle = new Rectangle(50.0f, 50.0f, 200.0f, 100.0f);  

      rectangle.setStroke(Color.VIOLET);
      rectangle.setStrokeWidth(7.0);

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

輸出

執行上述程式後,將生成一個 JavaFX 視窗,顯示一個描邊顏色為紫色的矩形,如下所示。

Stroke Output

示例

在此示例中,我們繪製了一個多邊形,並將其邊界顏色更改為 RED。將檔案儲存為 StrokePolygonExample.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 StrokePolygonExample 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[]{ 
         100.0, 50.0, 
         200.0, 50.0, 
         250.0, 150.0,          
         200.0, 250.0, 
         100.0, 250.0,
      });  

      polygon.setStroke(Color.RED);
      polygon.setStrokeWidth(5.0);

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

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

輸出

執行上述程式後,將生成一個 JavaFX 視窗,顯示一個描邊顏色為紫色的矩形,如下所示。

Stroke Output
廣告