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
广告

© . All rights reserved.