JavaFX - 繪製矩形



一般來說,矩形是一個四邊形,它有兩對平行且相交的邊,所有內角都是直角。

它由兩個引數描述:

  • 高度 - 矩形的垂直長度稱為高度。

  • 寬度 - 矩形的水平長度稱為寬度。

Rectangle

JavaFX 中的矩形

在 JavaFX 中,矩形由名為 Rectangle 的類表示。此類屬於包 javafx.scene.shape

透過例項化此類,您可以在 JavaFX 中建立一個矩形節點。

此類具有 4 個 double 資料型別的屬性:

  • X - 矩形起點(左上角)的 x 座標。

  • Y - 矩形起點(左上角)的 y 座標。

  • 寬度 - 矩形的寬度。

  • 高度 - 矩形的高度。

要繪製矩形,您需要向這些屬性傳遞值,方法是在例項化時按相同順序將它們傳遞給此類的建構函式。

繪製矩形的步驟

您需要按照以下步驟在 JavaFX 中繪製矩形。

步驟 1:建立矩形

要在 JavaFX 中建立矩形,請例項化名為 Rectangle 的類(屬於包 javafx.scene.shape),如下所示:

//Creating a rectangle object         
Rectangle rectangle = new Rectangle();

由於整個程式碼都寫在 Application 類的 start() 方法中,因此 Rectangle 類也在其中例項化,如下所示:

public class ClassName extends Application {    
   public void start(Stage primaryStage) throws Exception {
      // Write code here
      Rectangle rectangle = new Rectangle();
   }
} 

步驟 2:設定矩形的屬性

指定起始點(左上角)的 x、y 座標以及需要繪製的矩形的高度和寬度。您可以使用各自的 setter 方法設定 x、y、height 和 width 屬性來實現。

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

步驟 3:將矩形物件新增到組

在此步驟中,將透過將矩形物件作為引數值傳遞給其建構函式來例項化包 javafx.scene 中的 Group 類,如下所示:

Group root = new Group(rectangle);

步驟 4:啟動應用程式

建立二維物件後,請按照以下步驟正確啟動應用程式:

  • 首先,透過將 Group 物件作為引數值傳遞給其建構函式來例項化名為 Scene 的類。您可以將應用程式螢幕的尺寸作為可選引數傳遞給此建構函式。

  • 然後,使用 Stage 類的 setTitle() 方法設定舞臺的標題。

  • 現在,使用名為 Stage 的類的 setScene() 方法將 Scene 物件新增到舞臺。

  • 使用名為 show() 的方法顯示場景的內容。

  • 最後,使用 launch() 方法啟動應用程式。

示例

以下是生成 JavaFX 矩形的程式。將此程式碼儲存在名為 RectangleExample.java 的檔案中。

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

public class RectangleExample 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);      
         
      //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 RectangleExample.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls RectangleExample

輸出

執行上述程式後,將生成一個 JavaFX 視窗,其中顯示如下螢幕截圖所示的矩形。

Drawing Rectangle

示例 - 繪製房屋

讓我們來看另一個示例,我們嘗試使用矩形繪製房屋。在這裡,我們使用兩個矩形和兩條線來完成卡通房屋的基本版本。我們將此檔案命名為 RectangleHouse.java

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

public class RectangleHouse extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Rectangle 
      Rectangle rectangle1 = new Rectangle();	
      Rectangle rectangle2 = new Rectangle(200.0f, 120.0f, 50.0f, 30.0f);
      rectangle2.setFill(Color.hsb(50, 1, 1));	  
      
      //Setting the properties of the rectangle 
      rectangle1.setX(150.0f); 
      rectangle1.setY(75.0f); 
      rectangle1.setWidth(150.0f); 
      rectangle1.setHeight(75.0f);

      // Setting the properties of Lines
      // without setter methods
	  Line line1 = new Line(150, 75, 225, 30);
	  Line line2 = new Line(225, 30, 300, 75);          
         
      //Creating a Group object  
      Group root = new Group();
      root.getChildren().addAll(rectangle1, rectangle2, line1, line2);
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing a House"); 
         
      //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 RectangleHouse.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls RectangleHouse

輸出

執行上述程式後,將生成一個 JavaFX 視窗,其中顯示如下螢幕截圖所示的房屋。

Drawing Rectangle
廣告