temos uma nova sequência de números naturais
de 0 a 9 diferente da original imprimida,
e isto graças ao método emb_lhar ( int vet [ ] );
que embaralha um array pré-definido a cada chamada.
Um efeito interessante é conseguido segurando
a tecla enter pressionada, ou inserindo
um clock em substituição da tecla, automatizando
os embaralhamentos, criando infinitas
sequências diferentes da original.
Veja abaixo uma imagem do programa em execução:
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.Button;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.Pane;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import java.util.Random;
public class PROJETO extends Application {
public static int TAM = 10;
static Canvas canvas = new Canvas ( 620, 350 );
static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
static Pane ro_ot = new Pane ( );
static Scene sce_ne = new Scene ( ro_ot, 620, 350 );
static Button btn_1 = new Button ( "FECHAR" );
////////////////////////////////////////////////////////////////////////////
public static int emb_lhar ( int vet [ ] ) {
int i, temp, y;
Random random = new Random ( );
for ( i = 0; i < TAM; i++ ) {
y = random.nextInt ( TAM );
temp = vet [ i ];
vet [ i ] = vet [ y ];
vet [ y ] = temp;
}
return i;
}
//
////////////////////////////////////////////////////////////////////////
public static Node But_ton_3 ( int vet [ ] ) {
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: blue;"
+ "-fx-font-style:
italic;"
+ "-fx-font-family:
Consolas;"
);
btn_1.setOnKeyPressed ( e -> {
if ( e.getCode ( ) == KeyCode.ENTER ) {
int a, b;
String st = " ";
// Coluna, linha,
comprimento, altura
ctx.clearRect ( 70, 130, 580, 180 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Embaralhando
abaixo o array de inteiros", 190, 140 );
a = emb_lhar ( vet );
for ( b = 0; b < a; b++ ) {
st += vet [ b ] + " ";
}
ctx.setFill ( Color.RED );
ctx.fillText ( st, 190, 170 );
}
} );
return btn_1;
}
//
////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
stage.setTitle ( "JAVAFX -
EMBARALHANDO ARRAY DE INTEIROS" );
//Criando moldura e dando efeitos
ro_ot.setStyle ( "-fx-padding:
5;" + "-fx-border-style: solid inside;"
+ "-fx-border-width:
12;" + "-fx-border-insets: 5;"
+ "-fx-border-radius:
5;" + "-fx-border-color: blue;" );
ctx.setFill ( Color.RED );
ctx.fillText ( "EMBARALHANDO
ARRAY DE INTEIROS", 190, 50 );
String st = " ";
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Imprimindo
abaixo o array de inteiros", 190, 80 );
ctx.setFill ( Color.BLACK );
int vet [ ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i;
for ( i = 0; i < TAM; i++ ) {
st += vet [ i ] + " ";
}
ctx.setFill ( Color.RED );
ctx.fillText ( st, 190, 110 );
But_ton_3 ( vet );
ro_ot.getChildren ( ).addAll ( canvas, btn_1 );
stage.setScene ( sce_ne );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
Application.launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.