JavaFX - SVGPath de formas 2D

SVG (Scalable Vector Graphics) es un lenguaje basado en XML para definir gráficos basados ​​en vectores.

En JavaFX podemos construir imágenes analizando rutas SVG. Tales formas están representadas por la clase llamadaSVGPath. Esta clase pertenece al paquetejavafx.scene.shape.

Al crear una instancia de esta clase, puede crear un nodo que se crea analizando una ruta SVG en JavaFX.

Esta clase tiene una propiedad llamada contentdel tipo de datos String. Esto representa la cadena codificada de la ruta SVG, de la cual se debe extraer la imagen.

Para dibujar una forma analizando una ruta SVG, debe pasar valores a esta propiedad, utilizando el método denominado setContent() de esta clase de la siguiente manera:

setContent(value);

Pasos para dibujar SVGPath

Para dibujar una forma analizando un SVGPath en JavaFX, siga los pasos que se indican a continuación.

Paso 1: crear una clase

Cree una clase Java y herede la Application clase del paquete javafx.application e implementar el start() método de esta clase de la siguiente manera.

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

Paso 2: crear un objeto de la clase SVGPath

Puede crear una forma requerida en JavaFX analizando un SVGPath. Para hacerlo, cree una instancia de la clase llamadaSVGPath que pertenece a un paquete javafx.scene.shape. Puede crear una instancia de esta clase de la siguiente manera.

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

Paso 3: Configuración de SVGPath

Establecer el contenido del objeto SVG usando el método setContent(). Para este método, debe pasar el archivo SVGPath. Con el cual, se debe dibujar una forma en forma de cadena como se muestra en el siguiente bloque de código.

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

Paso 4: crear un objeto de grupo

En el start() método, cree un objeto de grupo instanciando la clase llamada Group, que pertenece al paquete javafx.scene.

Pase el objeto SVGPath (nodo) creado en el paso anterior como parámetro al constructor de la clase Group. Esto debe hacerse para agregarlo al grupo de la siguiente manera:

Group root = new Group(svgpath);

Paso 5: creación de un objeto de escena

Cree una escena creando una instancia de la clase llamada Sceneque pertenece al paquete javafx.scene. A esta clase, pase el objeto Grupo(root) creado en el paso anterior.

Además del objeto raíz, también puede pasar dos parámetros dobles que representan la altura y el ancho de la pantalla junto con el objeto de la clase Group de la siguiente manera.

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

Paso 6: Establecer el título del escenario

Puede establecer el título del escenario utilizando el setTitle() método del Stageclase. losprimaryStage es un objeto Stage que se pasa al método de inicio de la clase de escena como parámetro.

Utilizando el primaryStage objeto, establezca el título de la escena como Sample Application como sigue.

primaryStage.setTitle("Sample Application");

Paso 7: agregar escena al escenario

Puede agregar un objeto de escena al escenario usando el método setScene() de la clase nombrada Stage. Agregue el objeto Scene preparado en los pasos anteriores utilizando este método de la siguiente manera.

primaryStage.setScene(scene);

Paso 8: Visualización del contenido del escenario

Muestre el contenido de la escena usando el método llamado show() del Stage clase de la siguiente manera.

primaryStage.show();

Paso 9: lanzamiento de la aplicación

Inicie la aplicación JavaFX llamando al método estático launch() del Application class del método x principal de la siguiente manera.

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

Ejemplo

A continuación se muestra un programa que genera una forma analizando la ruta SVG usando JavaFX. Guarde este código en un archivo con el nombreSVGExample.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); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac SVGExample.java 
java SVGExample

Al ejecutarse, el programa anterior genera una ventana JavaFX que muestra un triángulo, que se dibuja analizando el SVG path Como se muestra abajo.