domingo, 4 de fevereiro de 2018

Javafx - removendo elementos em ArrayList

Apresento aqui um bom exemplo
de como remover vários elementos
de uma só vez de um ArrayList.
Estes elementos inteiros são escolhidos
por um combox, de onde parte primeiramente
o total de elementos a serem removidos.
Passamos dois ArrayList como parâmetros
para os métodos Array_1 ( arr, list ); e Inf_quant ( arr, list ); 

sendo um carregado com elementos inteiros entre 0 e 100,
e o outro vazio.
No vazio será preenchido os elementos que serão
removidos no ArrayList carregado.
Teste isto agora mesmo e veja como foi feito.


Veja abaixo imagens do programa em execução:




Veja abaixo o código do programa:



import java.util.ArrayList;
import javafx.application.Application;
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.geometry.Insets;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;

public class PROJETO extends Application {
     static int k = 0, l = 0;
     public static int TAM = 100, fim, tam = 0;
     static Canvas canvas = new Canvas ( 620, 390 );
     static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     static Pane ro_ot = new Pane ( );
     static Scene sce_ne = new Scene ( ro_ot, 620, 390 );
     static Button btn_1 = new Button ( "TECLE ENTER" );
     @SuppressWarnings ( "rawtypes" )
     static final ComboBox cb = new ComboBox ( );
     static GridPane grid = new GridPane ( );
     static Boolean y = false;
///////////////////////////////////////////////////////////////////////////
     public static void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 200, 322 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 240, 322 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 200, 340 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " MUITO OBRIGADO", 250, 360 );
     }
     // ////////////////////////////////////////////////////////////////////////
     public static int Inf_quant ( ArrayList < Integer > arr, ArrayList < Integer > list ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         int i;
         String str = " ";
         String str1 = " ";
         k++;
         //Coluna, linha, comprimento, altura
         ctx.clearRect ( 180, 60, 400, 250 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Insira o ", 190, 80 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " " + ( k ) + " º", 240, 80 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "número", 275, 80 );
         list.add ( fim  );
         if ( k == tam + 2 ) {
              ctx.clearRect ( 180, 70, 400, 20 );
              ctx.setFill ( Color.BLUE );
              ctx.fillText ( "Elementos que foram removidos do ArrayList", 200, 60 );
              for ( i = 1; i < tam + 2; i++ ) {
                   System.out.printf ( "%3d", list.get ( i ) );
                   str1 += list.get ( i ) + "\t";
              }
              ctx.setFill ( Color.RED );
              ctx.fillText ( str1, 180, 80 ); 
              for ( i = 1; i < tam + 2; i++ ) {
                   arr.remove ( list.get ( i ) ); 
              }       
              for ( i = 0; i < arr.size ( ); i++ ) {  
                   if ( arr.get ( i ) % 10 == 0 ) {
                        str += "\n";
                   }
                   if ( arr.get ( i ) >= 0 && arr.get ( i )  <= 9 ){
                        str +=  "0";
                   }
                   str += arr.get ( i ) + "   ";
              }       
              ctx.setFill ( Color.BLUE );
              ctx.fillText ( "Abaixo os elementos que ficaram", 200, 100 );
              ctx.setFill ( Color.RED );
              ctx.fillText ( str, 180, 130 ); 
              Informe ( );
         }
         return 0;
     }
     // ////////////////////////////////////////////////////////////////////////
     @SuppressWarnings ( "unchecked" )
     public static int Array_1 ( ArrayList < Integer > arr, ArrayList < Integer > list ) {
         cb.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 2;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: black;" );
         int i = 0;
         do {
              i++;
              //total de linhas visíveis
              cb.setVisibleRowCount ( 10 );
              cb.getItems ( ).addAll ( i );
         } while ( i <= TAM );
         cb.getSelectionModel ( ).selectedIndexProperty ( )
         .addListener ( new ChangeListener < Number > ( ) {
              @SuppressWarnings ( "rawtypes" )
              public void changed ( ObservableValue ov, Number value,
                        Number new_value ) {
                   if ( y == false ) {
                        tam = new_value.intValue ( );
                        y = true;
                   }
                   if ( y == true ) {
                        fim = new_value.intValue ( );
                        fim = fim + 1;
                   }             
                   Inf_quant ( arr, list );
              }
         } );
         grid.add ( cb, 1, 1 );
         return 0;
     }
     // ////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ArrayList < Integer > arr = new ArrayList < > ( );
         ArrayList < Integer > list = new ArrayList < > ( );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "JAVAFX - REMOVENDO ELEMENTOS NUM ARRAYLIST" );
         //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;"
                   + "-fx-background: #F5F5DC;");
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - REMOVENDO ELEMENTOS NUM ARRAYLIST", 140, 40 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "Escolha no combox o total de elementos", 190, 70 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "que deseja remover no ArrayList", 190, 90 );
         int i;
         String str = " ";
         //Preenchendo o ArrayList com laço for
         for ( i = 1; i < 101; i++ ) {
              arr.add ( i );
         }
         for ( i = 0; i < arr.size ( ); i++ ) {  
              if ( i % 10 == 0 ) {
                   str += "\n";
              }
              if ( i >= 0 && i < 9 ){
                   str +=  "0";
              }
              str += arr.get ( i ) + "   ";
         }
         ctx.setFill ( Color.RED );
         ctx.fillText ( str, 180, 100 );      
         Array_1 ( arr, list );
         grid.setPadding ( new Insets ( 15, 15, 60, 15 ) );
         ro_ot.getChildren ( ).addAll ( canvas );
         ro_ot.getChildren ( ).addAll ( grid );
         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.