JavaFX - Formes 2D SVGPath

SVG (Scalable Vector Graphics) est un langage basé sur XML pour définir des graphiques vectoriels.

En JavaFX, nous pouvons construire des images en analysant les chemins SVG. Ces formes sont représentées par la classe nomméeSVGPath. Cette classe appartient au packagejavafx.scene.shape.

En instanciant cette classe, vous pouvez créer un nœud qui est créé en analysant un chemin SVG dans JavaFX.

Cette classe a une propriété nommée contentde type de données String. Cela représente la chaîne codée SVG Path, à partir de laquelle l'image doit être dessinée.

Pour dessiner une forme en analysant un chemin SVG, vous devez transmettre des valeurs à cette propriété, en utilisant la méthode nommée setContent() de cette classe comme suit -

setContent(value);

Étapes pour dessiner SVGPath

Pour dessiner une forme en analysant un SVGPath dans JavaFX, suivez les étapes ci-dessous.

Étape 1: Créer une classe

Créez une classe Java et héritez du Application classe du package javafx.application et mettre en œuvre le start() méthode de cette classe comme suit.

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

Étape 2: Création d'un objet de la classe SVGPath

Vous pouvez créer une forme requise dans JavaFX en analysant un SVGPath. Pour ce faire, instanciez la classe nomméeSVGPath qui appartient à un package javafx.scene.shape. Vous pouvez instancier cette classe comme suit.

//Creating an object of the class SVGPath         
SVGPath svgpath = new SVGPath();

Étape 3: Définition du SVGPath

Définissez le contenu de l'objet SVG à l'aide de la méthode setContent(). Pour cette méthode, vous devez passer le SVGPath. À l'aide de laquelle, une forme doit être dessinée sous la forme d'une chaîne, comme indiqué dans le bloc de code suivant.

String path = "M 100 100 L 300 100 L 200 300 z";
//Setting the SVGPath in the form of string 
svgPath.setContent(path);

Étape 4: Création d'un objet de groupe

dans le start() , créez un objet de groupe en instanciant la classe nommée Group, qui appartient au package javafx.scene.

Passez l'objet SVGPath (nœud) créé à l'étape précédente en tant que paramètre au constructeur de la classe Group. Cela devrait être fait afin de l'ajouter au groupe comme suit -

Group root = new Group(svgpath);

Étape 5: Création d'un objet de scène

Créez une scène en instanciant la classe nommée Scenequi appartient au package javafx.scene. À cette classe, passez l'objet Group(root) créé à l'étape précédente.

En plus de l'objet racine, vous pouvez également transmettre deux doubles paramètres représentant la hauteur et la largeur de l'écran avec l'objet de la classe Group comme suit.

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

Étape 6: Définition du titre de la scène

Vous pouvez définir le titre de la scène à l'aide du setTitle() méthode de la Stageclasse. leprimaryStage est un objet Stage qui est passé à la méthode start de la classe Scene en tant que paramètre.

En utilisant le primaryStage objet, définissez le titre de la scène comme Sample Application comme suit.

primaryStage.setTitle("Sample Application");

Étape 7: Ajouter une scène à la scène

Vous pouvez ajouter un objet Scene à la scène en utilisant la méthode setScene() de la classe nommée Stage. Ajoutez l'objet Scene préparé aux étapes précédentes à l'aide de cette méthode comme suit.

primaryStage.setScene(scene);

Étape 8: Affichage du contenu de la scène

Affichez le contenu de la scène en utilisant la méthode nommée show() du Stage classe comme suit.

primaryStage.show();

Étape 9: Lancement de l'application

Lancez l'application JavaFX en appelant la méthode statique launch() du Application classe de la méthode x principale comme suit.

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

Exemple

Voici un programme qui génère une forme en analysant le chemin SVG à l'aide de JavaFX. Enregistrez ce code dans un fichier avec le nomSVGExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.SVGPath; 
import javafx.stage.Stage; 
        
public class SVGExample extends Application {  
   @Override 
   public void start(Stage stage) { 
      //Creating a SVGPath object 
      SVGPath svgPath = new SVGPath();       
       
      String path = "M 100 100 L 300 100 L 200 300 z";  
      
      //Setting the SVGPath in the form of string 
      svgPath.setContent(path);             
         
      //Creating a Group object  
      Group root = new Group(svgPath); 
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);
      
      //Setting title to the Stage
      stage.setTitle("Drawing a Sphere"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac SVGExample.java 
java SVGExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant un triangle, qui est dessiné en analysant le SVG path comme indiqué ci-dessous.