de desenhar em JavaFX,
mas este aqui ainda não foi apresentado.
Podemos desenhar caminhos SVG,
utilizando o método:
public void appendSVGPath ( String svgpath );
Com isto é possível desenhar figuras
simples ou polígonos complexos,
concatenando várias String svgpath.
Tudo o que temos que fazer é inserir
as coordenadas (X,Y) em String,
e o Java traça as rotas do caminho svg,
em suas propriedades.
Reflexão: "Algumas vezes penso comigo
mesmo que os caras que criaram o Java
não são deste planeta".
O método appendSVGPath pertence,
a classe Class GraphicsContext,
que é o principal objeto do canvas,
e nesta classe, temos muitos outros
métodos que foram criados pelos
"deuses do java" para serem utilizados
por nós meros mortais.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.scene.layout.Pane;
public class PROJETO extends Application {
Pane root = new Pane ( );
Canvas canvas = new Canvas ( 600, 310 );
GraphicsContext ctx = canvas.getGraphicsContext2D ( );
Scene scene = new Scene ( root, 600, 310 );
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 250, 245 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 280, 245 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 250, 260 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 250, 290 );
}
//
/////////////////////////////////////////////////////////////////////////
private void desenha_pentagono ( ) {
ctx.setStroke ( Color.BLUE );
ctx.setLineWidth ( 5.0 );
ctx.beginPath ( );
ctx.appendSVGPath (
//Pentágono
//Coluna, linha.
"M 310 55" //Ponto A
+ "L 400
120"//Ponto B
+ "L 369
226"//Ponto C
+ "L 253
226"//Ponto D
+ "L 220
120"//Ponto E
);
ctx.closePath ( );
ctx.stroke ( );
}
//
/////////////////////////////////////////////////////////////////////////
private void desenha_estrela ( ) {
ctx.setStroke ( Color.RED );
ctx.setLineWidth ( 5.0 );
ctx.beginPath ( );
ctx.appendSVGPath (
//Estrela dentro do
pentágono
"M 394 121"//Ponto B
+ "L 254
220"//Ponto D
+ "L 310
61" //Ponto A
+ "L 367
219"//Ponto C
+ "L 225
120"//Ponto E
);
ctx.closePath ( );
ctx.stroke ( );
}
//
/////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) throws FileNotFoundException {
stage.setTitle ( "JAVAFX -
DESENHANDO POLÍGONOS COM SVGPATH" );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
// Criando moldura e dando efeitos
root.setStyle ( "-fx-padding:
5;"
+ "-fx-border-style:
solid inside;"
+ "-fx-border-width:
10;"
+ "-fx-border-insets:
5;"
+ "-fx-border-radius:
5;"
+ "-fx-border-color:
blue;" );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
DESENHANDO POLÍGONOS COM SVGPATH", 120, 40 );
Informe ( );
desenha_pentagono ( );
desenha_estrela ( );
stage.setScene ( scene );
root.getChildren ( ).addAll ( canvas );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String args ) {
launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.