supreende pela sua alta performance
aliada com gráficos avançados e perfeitos.
Neste exemplo, estamos escolhendo uma palavra
num choicebox que recebeu sua carga por um
array de string.
"Confira no vídeo do programa em execução"
A palavra recebe efeito e animação
como era de se esperar, como também esperamos
que você estudante de java não perca esta
grande oportunidade de ingressar na área mais
comercial e evoluída da programação.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o vídeo do programa:
Veja abaixo o código do programa:
import javafx.animation.Animation;
import javafx.animation.RotateTransition;
import javafx.animation.Transition;
import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.effect.DropShadow;
import javafx.scene.input.KeyCode;
import javafx.util.Duration;
public class PROJETO extends Application {
static String str = "";
static String [ ] st = { "Um", "Dois", "Tres", "Quatro", "Cinco", "Seis",
"Sete", "Oito", "Nove", "Dez", "Onze", "Doze", "Viva_Java" };
static int i;
static Canvas canvas = new Canvas ( 600, 340 );
static GraphicsContext ctx = canvas.getGraphicsContext2D
( );
static Pane root = new Pane ( );
static Scene scene = new Scene ( root, 600, 340 );
static GridPane grid = new GridPane ( );
static Button btn_1 = new Button ( "FECHAR" );
static final Text text = new Text ( 190, 190, "" );
//
/////////////////////////////////////////////////////////////////////////
public static Node Sair ( ) {
btn_1.setPrefWidth ( 100 );// Largura do botão
btn_1.setLayoutX ( 267 );// Posição do botão
coluna
btn_1.setPrefHeight ( 20 );// altura do botão
btn_1.setLayoutY ( 300 );// //Posição do botão
linha
btn_1.setStyle ( "-fx-padding:
1;" + "-fx-border-style: solid inside;"
+ "-fx-border-width:
2;" + "-fx-border-insets: 1;"
+ "-fx-border-radius:
1;" + "-fx-border-color: red;"
+ "-fx-font-style:
italic;" + "-fx-font-family: Consolas;" );
btn_1.setOnKeyPressed ( e -> {
if ( e.getCode ( ) == KeyCode.ENTER ) {
System.exit ( 0 );
}
} );
return btn_1;
}
//
/////////////////////////////////////////////////////////////////////////
public static void Choice_box ( ) {
ChoiceBox < String > cb = new ChoiceBox < String > (
FXCollections.observableArrayList ( st ) );
cb.setStyle ( "-fx-padding:
5;" + "-fx-border-style: solid inside;"
+ "-fx-border-width:
2;" + "-fx-border-insets: 5;"
+ "-fx-border-radius:
5;" + "-fx-border-color: black;" );
cb.getSelectionModel ( ).selectedIndexProperty
( )
.addListener ( new ChangeListener < Number > ( ) {
public void changed ( ObservableValue ov, Number value,
Number new_value ) {
str = st [ new_value.intValue ( ) ];
// Coluna, linha,
comprimento, altura
ctx.clearRect ( 170, 100, 400, 50 );
ctx.clearRect ( 170, 130, 400, 50 );
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL,
14 ) );
i = new_value.intValue ( );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Palavra =>
", 190, 110 );
ctx.setFill ( Color.RED );
ctx.fillText ( " " + str, 260, 110 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Abaixo a
palavra em animação", 190, 140 );
ctx.setFill ( Color.RED );
text.setFont ( Font.font ( null, FontWeight.BOLD, 35 ) );
final Animation anime = new Transition ( ) {
{
setCycleDuration
( Duration.millis ( 2000 ) );
}
protected void interpolate ( double frac ) {
final int length = str.length ( );
final int n = Math.round ( length
* ( float ) frac );
text.setFill ( Color.BLUE );
DropShadow drop = new DropShadow ( );
drop.setOffsetX ( 2.0f );
drop.setOffsetY ( 4.0f );
drop.setColor ( Color.rgb ( 150, 50, 50, .688 ) );
text.setEffect ( drop );
text.setText ( str.substring ( 0, n ) );
RotateTransition rotate = new RotateTransition ( );
// Definindo a duração
da transição
rotate.setDuration ( Duration.millis ( 1000 ) );
// Configurando o nó
para a transição
rotate.setNode ( text );
// Ajustando o eixo da
rotação
rotate.setAxis ( Rotate.Y_AXIS );
// Ajustando o ângulo
da rotação
rotate.setByAngle ( 360 );
// Definindo a
contagem de ciclos para a
// transição
rotate.setCycleCount ( 50 );
// Configurando o
valor do reverso automático
// para falso
rotate.setAutoReverse ( false );
rotate.play ( );
}
};
anime.play ( );
}
} );
grid.add ( cb, 1, 1 );
}
//
/////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) {
stage.setTitle ( "JAVAFX -
ANIMAÇÃO E EFEITO" );
// 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: cyan;" );
ctx.setFont ( Font.font ( "Tahoma", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
ANIMAÇÃO E EFEITO", 200, 50 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Escolha uma
palavra no choicebox", 190, 80 );
Choice_box ( );
Sair ( );
grid.setPadding ( new Insets ( 15, 15, 60, 15 ) );
root.getChildren ( ).addAll ( canvas, btn_1 );
root.getChildren ( ).addAll ( grid, text );
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.