domingo, 7 de janeiro de 2018

Javafx - pares e ímpares em array de inteiros

Este programa criado em javafx preenche
um array de inteiros com números entre
1 e 100 vindo de um contador com laço for.
Mas a graça está na capacidade das separações
em cores diferentes na impressão,
sendo os números ímpares em preto
e os pares em vermelho.
Para estas formatações usei duas
StringBuilder que recebem as cópias
dos números pares e ímpares separadamente,
e a saída do programa é feita pela tecla
enter do computador posicionada no centro
inferior da tela.
Programa indicado a iniciantes em javafx.

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.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;

////////////////////////////////////////////////////////////////////////////////
public class PROJETO extends Application {
     public static int TAM = 100;
     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 Node But_ton_3 ( ) {
         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 ) {
                   System.exit ( 0 );
              }
         } );
         return btn_1;
     }
     // ////////////////////////////////////////////////////////////////////////
     public static void Arr ( ) {
         int a = 0, i;
         int arr [ ] = new int [ TAM ];
         StringBuilder str = new StringBuilder ( );
         StringBuilder str_1 = new StringBuilder ( );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Imprimindo abaixo o array de inteiros", 190, 80 );
         for ( i = 1; i <= TAM; i++ ) {
              arr [ a ] = i;
              a++;
         }
         for ( i = 0; i < arr.length; i++ ) {
              if ( i % 10 == 0 ){
                   str.append ( "\n" );
                   str_1.append ( "\n" );
              }
              if ( i % 2 == 1 ) {
                   if ( i >= 0 && i < 9 )
                        str.append ( "0" );
                   str.append ( arr [ i ] + "            " );
                   ctx.setFill ( Color.RED );
                   ctx.fillText ( "" + str, 180, 100 );
              } else {
                   if ( i >= 0 && i < 9 )
                        str_1.append ( "0" );
                   str_1.append ( arr [ i ] + "            " );
                   ctx.setFill ( Color.BLACK );
                   ctx.fillText ( "" + str_1, 150, 100 );
              }
         }
     }
     // ////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "JAVAFX - PARES E ÍMPARES EM ARRAY" );
         //Criando moldura e dando efeitos
         ro_ot.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 18;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: red;" );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "PARES E ÍMPARES EM ARRAY DE INTEIROS", 150, 50 );
         Arr ( );
         But_ton_3 ( );
         ro_ot.getChildren ( ).addAll ( canvas, btn_1 );
         stage.setScene ( sce_ne );
         stage.show ( );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static void main ( String [ ] args ) {
         Application.launch ( args );
     }
}
 

//OUTRO EXEMPLO SEM ARRAY


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;

////////////////////////////////////////////////////////////////////////////////
public class PROJETO extends Application {
     public static int TAM = 100;
     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" );
     static Boolean x = false;
     static Boolean y = false;
     // /////////////////////////////////////////////////////////////////////////
     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: blue;"
                   + "-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 Par_impar ( ) {
         int i;
         StringBuilder str = new StringBuilder ( );
         StringBuilder str1 = new StringBuilder ( );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "Abaixo os números pares", 240, 70 );       
         ctx.fillText (" e ímpares entre 0 e 100", 240, 90 );                
         ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 14 ) );
         for ( i = 0; i < TAM; i++ ) {
              if ( i % 10 == 0 )
                   str.append ( "\n" );
              str.append ( "\t" );
              if ( i % 10 == 0 )
                   str1.append ( "\n" );
              str1.append ( "\t" );
              if ( i > 0  && i < 100 ) {
                   if ( i % 2 == 0 ) {
                        if ( i >= 1 && i <= 9 )
                            str.append ( "0" );
                        str.append ( i );
                        y = true;
                   } else {
                        if ( i >= 1 && i <= 9 )
                            str1.append ( "0" );
                        str1.append ( i );
                        x = true;
                   }
              }
         }
         if ( x == true ) {
              ctx.setFill ( Color.RED );
              ctx.fillText ( " " + str1, 140, 100 );
         }
         if ( y == true ) {
              ctx.setFill ( Color.BLACK );
              ctx.fillText ( " " + str, 140, 100 );
         }
     }
     // ////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "JAVAFX - NÚMEROS PARES E ÍMPARES" );
         // Criando moldura e dando efeitos
         ro_ot.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 18;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: red;" );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - NÚMEROS PARES E ÍMPARES", 170, 50 );
         Par_impar ( );
         Sair ( );
         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.