sábado, 17 de março de 2018

Javafx - removendo caracteres em array de char

Mesmo tendo em mãos toda flexibilidade dos ArrayList,
sempre nos deparamos com os arrays comuns,
 
que nos foi apresentado quando ainda estávamos aprendendo
o básico da linguagem.
Este exemplo mostra como remover alguns elementos

 dentro de um array de char, note que os elementos
que serão removidos do array original estão inseridos

 em outro array de char pré-definido.

 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 {
     static StringBuilder Arr = new StringBuilder ( );
     private static char [ ] Arr_1;
     private static char [ ] Arr_2;
     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 void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 250, 275 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 280, 275 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 250, 290 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static Node Fechar ( ) {
         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 Delete ( int a ) {
         char [ ] Arr_temp = new char [ Arr_1.length - 1 ];
         int indice = 0;
         for ( int i = 0; i < Arr_1.length; i++ ) {
              if ( Arr_1 [ i ] != a ) {
                   Arr_temp [ indice ] = Arr_1 [ i ];
                   indice++;
              }
         }
         Arr_1 = Arr_temp;
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "JAVAFX - REMOVENDO CARACTERES EM ARRAY DE CHAR" );
         // Criando moldura e dando efeitos
         ro_ot.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 15;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: black;"
                   + "-fx-background: lightcyan;");
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - REMOVENDO CARACTERES EM ARRAY DE CHAR", 100, 50 );
         Arr_1 = new char [ ] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
         Arr_2 = new char [ ] { 'A', 'C', 'F', 'I' };
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Abaixo o array original", 160, 80 );
         ctx.setFill ( Color.RED );
         for ( int i = 0; i < Arr_1.length; i++ ) {
              Arr.append ( " " + Arr_1 [ i ] + " " );
         }
         ctx.fillText ( " " + Arr, 160, 110 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Array com alguns elementos removidos", 160, 140 );
         for ( int i = 0; i < Arr_2.length; i++ )
              Delete ( Arr_2 [ i ] );
         Arr = new StringBuilder ( );
         for ( int i = 0; i < Arr_1.length; i++ ) {
              Arr.append ( " " + Arr_1 [ i ] + " " );
         }
         ctx.setFill ( Color.RED );
         ctx.fillText ( " " + Arr, 160, 170 );
         Informe ( );
         Fechar ( );
         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.