JavaFX - 2D Shapes SVGPath

SVG (Scalable Vector Graphics) é uma linguagem baseada em XML para definir gráficos baseados em vetores.

No JavaFX, podemos construir imagens analisando caminhos SVG. Essas formas são representadas pela classe chamadaSVGPath. Esta classe pertence ao pacotejavafx.scene.shape.

Ao instanciar essa classe, você pode criar um nó que é criado analisando um caminho SVG no JavaFX.

Esta classe possui uma propriedade chamada contentde tipo de dados String. Isso representa a string codificada do caminho SVG, a partir da qual a imagem deve ser desenhada.

Para desenhar uma forma analisando um caminho SVG, você precisa passar valores para esta propriedade, usando o método chamado setContent() desta classe da seguinte forma -

setContent(value);

Etapas para desenhar o SVGPath

Para desenhar uma forma analisando um SVGPath no JavaFX, siga as etapas fornecidas a seguir.

Etapa 1: Criação de uma classe

Crie uma classe Java e herde o Application classe do pacote javafx.application e implementar o start() método desta classe da seguinte forma.

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

Etapa 2: Criação de um objeto da classe SVGPath

Você pode criar uma forma necessária no JavaFX analisando um SVGPath. Para fazer isso, instancie a classe chamadaSVGPath que pertence a um pacote javafx.scene.shape. Você pode instanciar essa classe da seguinte maneira.

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

Etapa 3: Definir o SVGPath

Defina o conteúdo do objeto SVG usando o método setContent(). Para este método, você precisa passar o SVGPath. Usando o qual, uma forma deve ser desenhada na forma de uma string, conforme mostrado no seguinte bloco 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);

Etapa 4: Criação de um objeto de grupo

No start() método, crie um objeto de grupo instanciando a classe chamada Group, que pertence ao pacote javafx.scene.

Passe o objeto SVGPath (nó) criado na etapa anterior como um parâmetro para o construtor da classe Group. Isso deve ser feito para adicioná-lo ao grupo da seguinte forma -

Group root = new Group(svgpath);

Etapa 5: Criação de um objeto de cena

Crie uma cena instanciando a classe chamada Sceneque pertence ao pacote javafx.scene. Para esta aula passe o objeto Grupo(root) criado na etapa anterior.

Além do objeto raiz, você também pode passar dois parâmetros duplos que representam a altura e a largura da tela junto com o objeto da classe Grupo da seguinte maneira.

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

Etapa 6: definir o título do palco

Você pode definir o título do palco usando o setTitle() método do Stageclasse. oprimaryStage é um objeto Stage que é passado para o método start da classe Scene como um parâmetro.

Usando o primaryStage objeto, defina o título da cena como Sample Application do seguinte modo.

primaryStage.setTitle("Sample Application");

Etapa 7: Adicionando cena ao palco

Você pode adicionar um objeto Scene ao palco usando o método setScene() da classe chamada Stage. Adicione o objeto Scene preparado nas etapas anteriores usando este método como segue.

primaryStage.setScene(scene);

Etapa 8: Exibindo o conteúdo do palco

Exibir o conteúdo da cena usando o método chamado show() do Stage classe da seguinte forma.

primaryStage.show();

Etapa 9: iniciar o aplicativo

Inicie o aplicativo JavaFX chamando o método estático launch() do Application classe do método x principal da seguinte forma.

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

Exemplo

A seguir está um programa que gera uma forma analisando o caminho SVG usando JavaFX. Salve este código em um arquivo com o nomeSVGExample.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 e execute o arquivo java salvo no prompt de comando usando os comandos a seguir.

javac SVGExample.java 
java SVGExample

Ao ser executado, o programa acima gera uma janela JavaFX exibindo um triângulo, que é desenhado analisando o SVG path como mostrado abaixo.