JavaFX - 繪製圓形



圓是所有與一個固定點(圓心)距離相等(圓的半徑)的點的軌跡。換句話說,圓是一條形成封閉環路的線,環路上的每個點到中心點的距離都相同。

圓由兩個引數定義:

  • 中心 - 它是一個圓內的點。圓上的所有點到中心點的距離都相等。

  • 半徑 - 半徑是從圓心到圓上任何一點的距離。它是直徑的一半。

Circle

JavaFX 中的圓

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

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

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

  • centerX - 圓心的 x 座標。

  • centerY - 圓心的 y 座標。

  • radius - 圓的半徑(以畫素為單位)。

要繪製一個圓,您需要向這些屬性傳遞值,方法是在例項化時按相同的順序將它們傳遞給此類的建構函式,或者使用 setter 方法。

繪製圓的步驟

按照以下步驟在 JavaFX 中繪製一個圓。

步驟 1:建立圓

您可以透過例項化名為 Circle 的類(屬於包 javafx.scene.shape)在 JavaFX 中建立一個圓。整個 JavaFX 程式碼必須寫在 Application 類的 start() 方法內,如下所示:

public class ClassName extends Application {      
   public void start(Stage primaryStage) throws Exception {
      // Creating a circle object         
      Circle circle = new Circle();   
   }    
}

步驟 2:設定圓的屬性

使用各自的 setter 方法,在 start() 方法中指定圓心的 x、y 座標和圓的半徑,如下面的程式碼塊所示。

circle.setCenterX(300.0f); 
circle.setCenterY(135.0f); 
circle.setRadius(100.0f); 

步驟 3:將圓物件新增到 Group

透過將 Circle 物件作為引數值傳遞給它的建構函式,例項化包 javafx.sceneGroup 類,如下所示:

Group root = new Group(circle);

步驟 4:啟動應用程式

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

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

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

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

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

  • 最後,在 launch() 方法的幫助下啟動應用程式。

示例

以下程式使用 JavaFX 生成一個圓。將此程式碼儲存在名為 CircleExample.java 的檔案中。

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
         
public class CircleExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Circle 
      Circle circle = new Circle(); 

      //Setting the properties of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(135.0f); 
      circle.setRadius(100.0f); 

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

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

輸出

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

Drawing Circle

示例

讓我們再來看一個例子,將圓形作為奧運標誌的一部分來繪製。將檔案命名為 OlympicCircle.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene;
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
         
public class OlympicCircle extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Circle 
      Circle circle1 = new Circle(100.0f, 50.0f, 50.0f);
      circle1.setStroke(Color.BLUE);
      circle1.setFill(Color.WHITE);

      Circle circle2 = new Circle(175.0f, 50.0f, 50.0f);
      circle2.setStroke(Color.BLACK);
      circle2.setFill(Color.WHITE);

      Circle circle3 = new Circle(250.0f, 50.0f, 50.0f);
      circle3.setStroke(Color.RED);
      circle3.setFill(Color.WHITE);

      Circle circle4 = new Circle(75.0f, 125.0f, 50.0f);
      circle4.setStroke(Color.YELLOW);
      circle4.setFill(Color.WHITE);

      Circle circle5 = new Circle(150.0f, 125.0f, 50.0f);
      circle5.setStroke(Color.GREEN);
      circle5.setFill(Color.WHITE);


      //Creating a Group object  
      Group root = new Group();
      root.getChildren().addAll(circle1,circle2,circle3,circle4,circle5);

      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      //Setting title to the Stage 
      stage.setTitle("Drawing the Olympics Symbol"); 

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

輸出

執行上述程式後,將生成一個 JavaFX 視窗,其中顯示如下所示的奧運標誌。

Drawing Olympic Circle
廣告