terça-feira, 13 de fevereiro de 2018

Javafx - impressão aleatória de strings

Um array de inteiro de 32 posições vazias
é carregado por um loop for, mas não teria
graça se não fosse embaralhado primeiro pelo

método emblhar ( vet ), que o recebeu em seus
parâmetros, este mesmo array também foi
passado como parâmetro para o método
But_ton_2 ( int vet [ ] ); onde tudo acontece.
Este array de inteiro já embaralhado servirá
como índice do ArrayList arr_List para as chamadas 

das impressões aleatórias das 32 seleções contidas no seu corpo.
  
 Veja abaixo uma imagem do programa em execução:


Veja abaixo um vídeo com o programa funcionando:





Veja abaixo o código do programa:





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.layout.Pane;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.input.KeyCode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

////////////////////////////////////////////////////////////////////////////////
public class PROJETO extends Application {
     static ArrayList < String > arr_List = new ArrayList < > ( Arrays.asList (
              "Alemanha"       , //0
              "Argélia"        , //1
              "Argentina"      , //2
              "Austrália"      , //3
              "Bélgica"        , //4
              "Bósnia"         , //5
              "Brasil"         , //6
              "Camarões"       , //7
              "Chile"          , //8
              "Colômbia"       , //9
              "Coreia do Sul"  , //10
              "Costa do Marfim", //11
              "Costa Rica"     , //12
              "Croácia"        , //13
              "Equador"        , //14
              "Espanha"        , //15
              "Estados Unidos" , //16
              "França"         , //17
              "Gana"           , //18
              "Grécia"         , //19
              "Holanda"        , //20
              "Honduras"       , //21
              "Inglaterra"     , //22
              "Irã"            , //23
              "Itália"         , //24
              "Japão"          , //25
              "México"         , //26
              "Nigéria"        , //27
              "Portugal"       , //28
              "Rússia"         , //29
              "Suíça"          , //30
              "Uruguai") );      //31            
     // /////////////////////////////////////////////////////////////////////////
     static int k = 0;
     static boolean w = false;
     public static int TAM = 33;
     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 ( "TECLE ENTER" );
     static Button btn_2 = new Button ( "TECLE ENTER" );
     // /////////////////////////////////////////////////////////////////////////
     public static void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 200, 240 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 240, 240 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 200, 260 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " MUITO OBRIGADO", 250, 290 );
     }
////////////////////////////////////////////////////////////////////////////
     public static int emblhar ( 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_2 ( int vet [ ] ) {
         btn_2.setPrefWidth ( 100 );// Largura do botão
         btn_2.setLayoutX ( 267 );// Posição do botão coluna
         btn_2.setPrefHeight ( 20 );// altura do botão
         btn_2.setLayoutY ( 300 );// //Posição do botão linha    
         btn_2.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_2.setOnKeyPressed ( e -> {
              StringBuilder st = new StringBuilder ( );
              if ( e.getCode ( ) == KeyCode.ENTER ) {
                   k++;
                   if ( k == 33 )
                        System.exit ( 0 );
                   ctx.clearRect ( 160, 100, 200, 50 );
                   ctx.clearRect ( 310, 100, 200, 20 );
                   ctx.setFill ( Color.RED );
                   ctx.fillText ( " " + ( k ) + " ª", 170, 110 );
                   ctx.setFill ( Color.BLUE );
                   ctx.fillText ( "Seleção soeteada", 210, 110 );
                   System.out.print ( arr_List.get (  vet [ k ] ) + "\n" );
                   st.append ( arr_List.get (  vet [ k ] ) );
                   ctx.setFill ( Color.RED );
                   ctx.fillText ( " " + st, 330, 110 );
                   if ( k == 32 )
                        Informe ( );
              }
         } );
         return btn_2;
     }
     // ////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "JAVAFX - IMPRESSÃO ALEATÓRIA DE STRING" );
         //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: lightgreen;" );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - IMPRESSÃO ALEATÓRIA DE STRING", 140, 50 );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         int vet [ ] = new int [ TAM ];
         int a = 0, i;
         for ( i = 0; i < TAM; i++ ) {
              vet [ a ] = i;
              a++;
         }
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Abaixo as impressões aleatórias", 190, 80 );
         emblhar ( vet );
         But_ton_2 ( vet );   
         ro_ot.getChildren ( ).addAll ( canvas, btn_2 );
         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.