JavaFX - 描边宽度属性



在前面的章节中,我们学习了各种 2D 形状以及如何在 JavaFX 应用程序中绘制它们。但是,为了获得更好的用户体验,有必要使您的应用程序尽可能地吸引人。这还包括增强 JavaFX 应用程序中 2D 形状的外观。

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

描边宽度属性

Stroke Width 属性用于设置 2D 形状边界线的粗细。此属性的类型为 double,表示形状边界线的宽度。您可以使用 setStrokeWidth() 方法设置描边宽度,如下所示:

Path.setStrokeWidth(3.0) 

默认情况下,形状描边的值为 1.0。以下是具有不同描边宽度的三角形的示意图。

Stroke Width

示例

在本示例中,我们将尝试创建一个 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

输出

执行上述程序后,将生成一个 JavaFX 窗口,其中显示一个具有如下所示描边宽度的圆形。

Stroke Width Output

示例

现在,让我们尝试绘制一个具有相对较大宽度的三角形形状,并观察结果。将此文件保存为 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

输出

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

Stroke Width Output
广告