é sempre muito útil, principalmente,
quando estamos desenhando polígonos,
ou inserindo imagens no scene.
Este programa se torna um ferramenta
de trabalho muito necessária
quando o programador já está num nível
mais avançado.
Minha sugestão é que criem uma classe,
e sempre que necessário invoque-a
onde for preciso, e no término,
a mesma pode ser removida sem problemas
do programa que for compilado.
Veja abaixo uma imagem do programa em execução:
Vídeo com o funcionamento do programa:
Veja abaixo o código do programa:
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class PROJETO extends Application {
Pane root = new Pane ( );
Scene scene = new Scene ( root, 600, 310 );
Canvas canvas = new Canvas ( 600, 310 );
GraphicsContext ctx = canvas.getGraphicsContext2D
( );
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 230 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 240, 230 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 245 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 250, 280 );
}
//
/////////////////////////////////////////////////////////////////////////
EventHandler < MouseEvent > mouseHandler =
new EventHandler < MouseEvent > ( ) {
@Override
public void handle ( MouseEvent mouseEvent ) {
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
//Apaga uma área pré-definida
//Coluna, linha, comprimento, altura
ctx.clearRect ( 30, 45, 120, 50 );
//System.out.println ( "\n" + "Y => "
//+ mouseEvent.getX (
) + "\nX => "
//+
mouseEvent.getSceneY ( )
//);
ctx.setFill ( Color.BLACK );
ctx.fillText ( "Y =>
", 40, 60 );
ctx.fillText ( "X =>
", 40, 80 );
ctx.setFill ( Color.RED );
ctx.fillText ( " " + mouseEvent.getSceneY ( ), 80, 60 );
ctx.fillText ( " " + mouseEvent.getX ( ), 80, 80 );
}
};
//
/////////////////////////////////////////////////////////////////////////
public void detecta_coord ( ) {
scene.setOnMouseMoved ( mouseHandler );
scene.setOnMouseReleased ( mouseHandler );
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) {
// Configurando um título para o stage
stage.setTitle ( "JAVAFX -
CAPTURANDO AS COORDENADAS DO MOUSE" );
// Criando uma moldura retangular em canvas
ctx.setStroke ( Color.BLACK );
ctx.setLineWidth ( 10.0 );
ctx.strokeRoundRect ( 10, 10, 580, 290, 10, 10 );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
CAPTURANDO AS COORDENADAS DO MOUSE", 110, 40 );
Informe ( );
detecta_coord ( );
root.setStyle (
"-fx-background-color:"
+ "
radial-gradient(center 50% 50% ,"
+ " radius 5% ,
repeat,"
+ " #fffaf0,
LIGHTGRAY, CYAN);");
root.getChildren ( ).addAll ( canvas );
stage.setScene ( scene );
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.