JavaFX - 绘制圆角矩形



在几何学中,圆角矩形定义为一个 2D 形状,它包含弧形边而不是尖锐边。它是通过在尖锐边矩形上放置四个不同的圆圈(顶点作为圆心)来获得的。这个圆角矩形的边是针对这些圆圈绘制的公切线,如下面的图像所示。

Rounded Rectangle

在圆角矩形中,长度和宽度与包含在其内的尖锐边矩形的尺寸相同。

JavaFX 中的圆角矩形

在 JavaFX 中,您可以绘制一个具有尖锐边或弧形边的矩形,如下面的图表所示。

Rounded Rectangle

具有弧形边的那个被称为圆角矩形,因为它不包含顶点。此图形主要用于设计和光学中的各种应用,并且具有两个附加属性,即:

  • arcHeight - 圆角矩形角处的弧的垂直直径。

  • arcWidth - 圆角矩形角处的弧的水平直径。

Arc Width Height

默认情况下,JavaFX 创建一个具有尖锐边的矩形,除非您使用各自的 setter 方法 setArcHeight()setArcWidth() 将弧的高度和宽度设置为正值 (0<)。

绘制圆角矩形

为了在 JavaFX 中绘制圆角矩形,您还需要实例化名为 Rectangle 的类,该类位于 javafx.scene.shape 包中。除此之外,您还必须设置圆角矩形的弧属性,如下所示:

rectangle.setX(150.0f); 
rectangle.setY(75.0f); 
rectangle.setWidth(300.0f); 
rectangle.setHeight(150.0f);

rectangle.setArcWidth(30.0); 
rectangle.setArcHeight(20.0); 

按照本教程的 绘制矩形 章节中提到的所有其他步骤,启动带有圆角矩形的 JavaFX 应用程序。

示例

以下程序使用 JavaFX 生成一个圆角矩形。将此代码保存在名为 RoundedRectangle.java 的文件中。

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.Rectangle; 
         
public class RoundedRectangle extends Application { 
   @Override 
   public void start(Stage stage) {         
      //Drawing a Rectangle 
      Rectangle rectangle = new Rectangle();  
      
      //Setting the properties of the rectangle 
      rectangle.setX(150.0f); 
      rectangle.setY(75.0f); 
      rectangle.setWidth(300.0f); 
      rectangle.setHeight(150.0f); 
       
      //Setting the height and width of the arc 
      rectangle.setArcWidth(30.0); 
      rectangle.setArcHeight(20.0);  
         
      //Creating a Group object  
      Group root = new Group(rectangle); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 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 RoundedRectangle.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls RoundedRectangle

输出

执行上述程序后,将生成一个 JavaFX 窗口,其中显示一个圆角矩形,如下所示。

Drawing Rounded Rectangle

示例

让我们再看一个使用 JavaFX 绘制圆角矩形的示例。此外,让我们在此示例中应用一些 CSS,例如添加背景颜色。将此代码保存在名为 CSSRoundedRectangle.java 的文件中。

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle; 
         
public class CSSRoundedRectangle extends Application { 
   @Override 
   public void start(Stage stage) {         
      //Drawing a Rectangle 
      Rectangle rectangle = new Rectangle();  
      
      //Setting the properties of the rectangle 
      rectangle.setX(50.0f); 
      rectangle.setY(75.0f); 
      rectangle.setWidth(200.0f); 
      rectangle.setHeight(150.0f); 
       
      //Setting the height and width of the arc 
      rectangle.setArcWidth(30.0); 
      rectangle.setArcHeight(20.0);

      //Colour the rounded rectangle
      rectangle.setFill(Color.DARKBLUE);	  
         
      //Creating a Group object  
      Group root = new Group(rectangle);
         
      //Creating a scene object 
      Scene scene = new Scene(root, 300, 300);	
      scene.setFill(Color.RED);		  
      
      //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 CSSRoundedRectangle.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls CSSRoundedRectangle

输出

执行上述程序后,将生成一个 JavaFX 窗口,其中显示一个圆角矩形,如下所示。

Drawing Rounded Rectangle
广告