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.