JavaFX - 繪製直線



通常,直線是在多維平面(例如 XY 平面)上無限延伸的幾何結構。這種幾何圖形沒有起點和終點;也沒有可測量的尺寸,如寬度、深度等。儘管直線是一維物件,但它仍然可以存在於二維或更高維的平面中。

但是,具有起點和終點的直線段,稱為“線段”,在日常幾何中使用;這也是我們在本章中學習如何使用 JavaFX 建立的圖形。它繪製如下面的影像所示。

Line

JavaFX 中的直線

在 JavaFX 中,直線或線段由名為Line的類表示。此類屬於javafx.scene.shape包。透過例項化此類,您可以在 JavaFX 中建立一個直線節點。

此類具有 4 個雙精度資料型別的屬性,即 -

  • startX - 直線起點的 x 座標。

  • startY - 直線起點的 y 座標。

  • endX - 直線終點的 x 座標。

  • endY - 直線終點的 y 座標。

要繪製直線,您需要將值傳遞給這些屬性,或者在例項化時按相同的順序將它們傳遞給此類的建構函式。

在 JavaFX 中繪製直線的步驟

請按照以下步驟在 JavaFX 中繪製直線。

步驟 1:建立直線

您可以透過例項化名為Line的類來在 JavaFX 中建立直線,該類屬於javafx.scene.shape包。如下所示例項化此類 -

//Creating a line object         
Line line = new Line();

請注意,實現 JavaFX 圖形的整個程式碼(包括 Line 類的例項化)必須寫在Application類的start()方法中,如下所示 -

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

步驟 2:設定直線的屬性

透過使用其各自的 setter 方法設定屬性 startX、startY、endX 和 endY,指定在 XY 平面上繪製直線的座標,如下面的程式碼塊所示。

line.setStartX(100.0); 
line.setStartY(150.0); 
line.setEndX(500.0); 
line.setEndY(150.0); 

步驟 3:將直線物件新增到 Group

透過將 Line 物件作為引數值傳遞給其建構函式,例項化javafx.scene包的Group類,如下所示 -

Group root = new Group(line);

步驟 4:啟動應用程式

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

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

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

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

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

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

示例

以下是使用 JavaFX 生成直線的程式。將此程式碼儲存在名為DrawingLine.java的檔案中。

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

public class DrawingLine extends Application{ 
   @Override
   public void start(Stage stage) { 
      //Creating a line object
      Line line = new Line(); 
         
      //Setting the properties to a line 
      line.setStartX(100.0); 
      line.setStartY(150.0); 
      line.setEndX(500.0); 
      line.setEndY(150.0); 
         
      //Creating a Group 
      Group root = new Group(line); 
         
      //Creating a Scene 
      Scene scene = new Scene(root, 600, 300); 
         
      //Setting title to the scene 
      stage.setTitle("Sample application"); 
         
      //Adding the scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of a scene 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}       

使用以下命令從命令提示符編譯並執行儲存的 java 檔案。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls DrawingLine.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls DrawingLine

輸出

執行後,上述程式會生成一個 JavaFX 視窗,其中顯示一條直線,如下所示。

Drawing Line

繪製多條直線

您還可以透過使用 addAll() 函式將所有直線組合在一起,在單個應用程式上繪製多條直線。演示相同內容的示例如下。在這裡,我們使用四條線繪製一個正方形,並將背景顏色設定為“粉紅色”。將此程式碼儲存在名為DrawingMultipleLines.java的檔案中。

示例

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

public class DrawingMultipleLines extends Application{ 
   @Override
   public void start(Stage stage) { 
      //Creating a line object
      Line line1 = new Line(); 
         
      //Setting the properties to a line 
      line1.setStartX(100.0); 
      line1.setStartY(150.0); 
      line1.setEndX(200.0); 
      line1.setEndY(150.0);
	  
	  // Setting Properties to other lines
	  // without setter methods
	  Line line2 = new Line(200, 150, 200, 250);
	  Line line3 = new Line(200, 250, 100, 250);
	  Line line4 = new Line(100, 250, 100, 150);
         
      //Creating a Group 
      Group root = new Group();
	  
      root.getChildren().addAll(line1,line2,line3,line4);
         
      //Creating a Scene 
      Scene scene = new Scene(root, 400, 400, Color.PINK); 
         
      //Setting title to the scene 
      stage.setTitle("Sample application"); 
         
      //Adding the scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of a scene 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}     

使用以下命令從命令提示符編譯並執行儲存的 java 檔案。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls DrawingMultipleLines.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls DrawingMultipleLines

輸出

上述程式的輸出視窗將如下所示獲得。

Drawing Multiple Lines
廣告