JavaFX - Poligono di forme 2D

Una forma chiusa formata da un numero di segmenti di linea complanari collegati da un'estremità all'altra.

Un poligono è descritto da due parametri, vale a dire la lunghezza dei suoi lati e le misure dei suoi angoli interni.

In JavaFX, un poligono è rappresentato da una classe denominata Polygon. Questa classe appartiene al pacchettojavafx.scene.shape.

Istanziando questa classe, puoi creare un nodo poligonale in JavaFX. È necessario passare le coordinate x, y dei punti in base ai quali il poligono dovrebbe essere definito sotto forma di un doppio array.

Puoi passare il doppio array come parametro del costruttore di questa classe come mostrato di seguito -

Polygon polygon = new Polygon(doubleArray);

Oppure, utilizzando il getPoints() metodo come segue -

polygon.getPoints().addAll(new Double[]{ List of XY coordinates separated by commas });

Passaggi per disegnare un poligono

Per disegnare un poligono in JavaFX, seguire i passaggi indicati di seguito.

Passaggio 1: creazione di una classe

Crea una classe Java ed eredita il file Application classe del pacchetto javafx.application e implementare il start() metodo di questa classe come segue -

public class ClassName extends Application { 
   @Override     
   public void start(Stage primaryStage) throws Exception {     
   }    
}

Passaggio 2: creazione di un poligono

È possibile creare un poligono in JavaFX istanziando la classe denominata Polygon che appartiene a un pacchetto javafx.scene.shape. È possibile creare un'istanza di questa classe come segue.

//Creating an object of the class Polygon 
Polygon hexagon = new Polygon();

Passaggio 3: impostazione delle proprietà sul poligono

Specificare una doppia matrice contenente le coordinate XY dei punti del poligono richiesto (esagono in questo esempio) separate da virgole, utilizzando il getPoints() metodo del Polygon classe, come segue.

//Adding coordinates to the hexagon 
hexagon.getPoints().addAll(new Double[]{        
   200.0, 50.0, 
   400.0, 50.0, 
   450.0, 150.0,          
   400.0, 250.0, 
   200.0, 250.0,                   
   150.0, 150.0, 
})

Passaggio 4: creazione di un oggetto gruppo

Nel start() metodo, creare un oggetto gruppo istanziando la classe denominata Group, che appartiene al pacchetto javafx.scene.

Passa l'oggetto nodo poligono (esagono), creato nel passaggio precedente, come parametro al costruttore della classe Group, per aggiungerlo al gruppo come segue:

Group root = new Group(hexagon);

Passaggio 5: creazione di un oggetto scena

Crea una scena istanziando la classe denominata Sceneche appartiene al pacchetto javafx.scene. A questa classe passa l'oggetto Group(root), creato nel passaggio precedente.

Scene scene = new Scene(group ,600, 300);

Passaggio 6: impostazione del titolo dello stage

Puoi impostare il titolo dello stage utilizzando il setTitle() metodo del Stageclasse. IlprimaryStage è l'oggetto Stage che viene passato al metodo di avvio della classe scene come parametro.

Usando il primaryStage oggetto, imposta il titolo della scena come Sample Application come segue.

primaryStage.setTitle("Sample Application");

Passaggio 7: aggiunta di scene allo stage

Puoi aggiungere un oggetto Scene allo stage utilizzando il metodo setScene() della classe denominata Stage. Aggiungere l'oggetto Scene preparato nel passaggio precedente utilizzando il metodo mostrato di seguito.

primaryStage.setScene(scene);

Passaggio 8: visualizzazione dei contenuti dello stage

Visualizzare il contenuto della scena utilizzando il metodo denominato show () della classe Stage come segue.

primaryStage.show();

Passaggio 9: avvio dell'applicazione

Avvia l'applicazione JavaFX chiamando il metodo statico launch() del Application class dal metodo principale come segue.

public static void main(String args[]){   
   launch(args);      
}

Esempio

Di seguito è riportato un programma che genera un poligono (esagono) utilizzando JavaFX. Salva questo codice in un file con il nomePolygonExample.java.

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

public class PolygonExample extends Application { 
   @Override 
   public void start(Stage stage) {        
      //Creating a Polygon 
      Polygon polygon = new Polygon();  
       
      //Adding coordinates to the polygon 
      polygon.getPoints().addAll(new Double[]{ 
         300.0, 50.0, 
         450.0, 150.0, 
         300.0, 250.0, 
         150.0, 150.0, 
      }); 
          
      //Creating a Group object  
      Group root = new Group(polygon); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing a Polygon"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
      
      //Displaying the contents of the stage 
      stage.show(); 
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac PolygonExample.java 
java PolygonExample

All'esecuzione, il programma precedente genera una finestra JavaFX che mostra un poligono come mostrato sotto.