sexta-feira, 16 de março de 2018

Javafx - gerando caracteres

Aqui está um exemplo de como obter
diversos caracteres embaralhados
num total escolhido pelo programador.
Estes caracteres são gerados a partir

do nosso alfabeto maiúsculo e minúsculo
e dígitos de "0 a 9".
A impressão é feita numa janela gráfica de javaFx,

e o código é indicado aos estudantes da linguagem java.

Veja abaixo uma imagem do programa em execução:



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.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;
import java.util.Random;
public class PROJETO extends Application {
     private static Random rand = new Random ( );
     static StringBuilder Arr = new StringBuilder ( );
     public static char Caracteres [ ] = {
         '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a',
         'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
         'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
         'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
         'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
         'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
     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 Button btn_1 = new Button ( "FECHAR" );
     // ////////////////////////////////////////////////////////////////////////
     public static void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 200, 265 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 240, 265 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 200, 280 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static Node Sair ( ) {
         btn_1.setPrefWidth ( 100 );// Largura do botão
         btn_1.setLayoutX ( 257 );// 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 String char_alt ( int n ) {
         for ( int i = 0; i < n; i++ ) {
              int ch = rand.nextInt ( Caracteres.length );
              if ( i % 20 == 0 )
              Arr.append ( "\n" );
              Arr.append ( Caracteres [ ch ] + " " );
         }
         return Arr.toString ( );
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         stage.setTitle ( "JAVAFX - GERANDO CARACTERES" );
         // 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: darkblue;" );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - GERANDO CARACTERES", 170, 40 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "Abaixo os caracteres gerados", 190, 70 );
         Sair ( );
         Informe ( );
         int n = 200;
         char_alt ( n );
         System.out.print ( Arr );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( " " + Arr + " ", 180, 90 );
         root.getChildren ( ).addAll ( canvas, btn_1 );
         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.