e isto o torna bem diferente dos outros
que postei.
São ao todo onze imagens, dez para os dígitos
de zero a nove e mais uma imagem para o fundo,
esta imagem de fundo é que faz a limpeza da tela.
A idéia era criar dígitos personalizados,
sabemos que isto é possível, mas não é nada fácil
dominar como por exemplo o corel draw para criar fontes,
e nosso tempo é muito curto.
Veja abaixo uma imagem do programa em execução:
Veja abaixo um vídeo do programa em execução:
Veja abaixo o código do programa:
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.util.Duration;
public class PROJETO extends Application {
Group root = new Group ( );
Scene scene = new Scene ( root, 600, 300 );
Canvas canvas = new Canvas ( 600, 300 );
GraphicsContext ctx = canvas.getGraphicsContext2D
( );
private Timeline videoTick;
int k = 0, l = 0, load
= 1000;
Image imagem_1 = new Image ( "Zero.png" );
Image imagem_2 = new Image ( "Um.png" );
Image imagem_3 = new Image ( "Dois.png" );
Image imagem_4 = new Image ( "Três.png" );
Image imagem_5 = new Image ( "Quatro.png");
Image imagem_6 = new Image ( "Cinco.png" );
Image imagem_7 = new Image ( "Seis.png" );
Image imagem_8 = new Image ( "Sete.png" );
Image imagem_9 = new Image ( "Oito.png" );
Image imagem_10 = new Image ( "Nove.png" );
Image imagem_11 = new Image ( "FundoBranco.png" );
//
/////////////////////////////////////////////////////////////////////////
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", 230, 280 );
}
//
/////////////////////////////////////////////////////////////////////////
public void FuncUnidade ( ) {
if ( k == 1 )
ctx.drawImage ( imagem_1, 450, 140, 130, 150 );
if ( k == 2 )
ctx.drawImage ( imagem_2, 450, 140, 130, 150 );
if ( k == 3 )
ctx.drawImage ( imagem_3, 450, 140, 130, 150 );
if ( k == 4 )
ctx.drawImage ( imagem_4, 450, 140, 130, 150 );
if ( k == 5 )
ctx.drawImage ( imagem_5, 450, 140, 130, 150 );
if ( k == 6 )
ctx.drawImage ( imagem_6, 450, 140, 130, 150 );
if ( k == 7 )
ctx.drawImage ( imagem_7, 450, 140, 130, 150 );
if ( k == 8 )
ctx.drawImage ( imagem_8, 450, 140, 130, 150 );
if ( k == 9 )
ctx.drawImage ( imagem_9, 450, 140, 130, 150 );
if ( k == 10 )
ctx.drawImage ( imagem_10, 450, 140, 130, 150 );
}
//
/////////////////////////////////////////////////////////////////////////
//Método usado como clock criado por mim
public int Sleep ( int x ) {
Duration duration = Duration.millis ( x );
videoTick = new Timeline ( new KeyFrame ( duration,
new EventHandler < ActionEvent > ( ) {
public void handle ( ActionEvent actionEvent ) {
k++;
System.out.println ( l );
ctx.drawImage ( imagem_11, 450, 140, 130, 150 );
if ( k < 11 ) {
//Imprime o zero entre
0 e 9
ctx.drawImage ( imagem_1, 350, 140, 130, 150 );
FuncUnidade ( );
}
if ( k == 11 ) {
k = 1;
l++;
}
if ( l == 1 ) {
ctx.drawImage ( imagem_11, 350, 140, 130, 150 );
ctx.drawImage ( imagem_2, 350, 140, 130, 150 );
FuncUnidade ( );
}
if ( l == 2 ) {
ctx.drawImage ( imagem_11, 350, 140, 130, 150 );
ctx.drawImage ( imagem_3, 350, 140, 130, 150 );
FuncUnidade ( );
}
if ( l == 3 ) {
ctx.drawImage ( imagem_11, 350, 140, 130, 150 );
ctx.drawImage ( imagem_11, 450, 140, 130, 150 );
ctx.drawImage ( imagem_1, 350, 140, 130, 150 );
ctx.drawImage ( imagem_1, 450, 140, 130, 150 );
l = 0;
k = 1;
}
}
} ) );
videoTick.setCycleCount ( Animation.INDEFINITE );
videoTick.playFromStart ( );
return k;
}
//
/////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) throws Exception {
stage.setTitle ( "JAVAFX - DÍGITOS
IMAGENS" );
//Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 22 ) );
// Criando uma moldura retangular em canvas
ctx.setStroke ( Color.rgb ( 128, 0, 128 ) );
ctx.setLineWidth ( 10.0 );
ctx.strokeRoundRect ( 5, 5, 590, 290, 5, 5 );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX - DÍGITOS
IMAGENS", 170, 40 );
Informe ( );
Sleep ( load );
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.