sábado, 13 de janeiro de 2018

Javafx - de ArrayList para array bidimensional de inteiros

Aqui está um bom exemplo de como converter
um ArrayList de inteiros em Array bidimensional
do tipo primitivo int.
Se era isto que precisava acabou encontrando
facilmente, esta conversão envolvendo ArrayList
em Array de tipos primitivos, ou ao contrário,
é apenas um dos muitos outros exemplos

disponibilizado no blog de java.

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



Veja abaixo o código do programa:


import java.util.ArrayList;
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 = 10;
     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 ( ) {
         // Declarando abaixo o ArrayList
         ArrayList < Integer > arrlist = new ArrayList < Integer > ( );
         int i, j = 0;
         StringBuilder str = new StringBuilder ( );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Imprimindo abaixo o array de inteiros", 190, 80 );
         ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 14 ) );
         ctx.setFill ( Color.BLACK );
         // Preenchendo o ArrayList com laço for
         for ( i = 0; i < 101; i++ ) {
              arrlist.add ( i );
         }
         //Iniciando o processo de conversão
         int [ ] [ ] Vet = new int [ arrlist.size ( ) ] [ TAM * TAM ];
         for ( i = 0; i < TAM; i++ ) {
              for ( j = 0; j < TAM; j++ ) {
                   int y = TAM * i;
                   //Os valores do ArrayList são copiados
                   //nas linhas e colunas do Array bidimensional
                   Vet [ i ] [ j ] = arrlist.get ( y + j );
                   if ( Vet [ i ] [ j ] % TAM == 0 )
                        str.append ( "\n" );            
                   if ( Vet [ i ] [ j ] >= 0 && Vet [ i ] [ j ] <= 9 )
                        str.append  ( "0" );
                   str.append ( Vet [ i ] [ j ] + "    " );
              }
         }            
         ctx.setFill ( Color.MAGENTA );
         ctx.fillText ( " " + str, 170, 100 );
     }
     // ////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "CONVERTENDO ARRAYLIST EM ARRAY BIDIMENSIONAL DE INTEIROS" );
         // 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: green;" );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "ARRAYLIST PARA ARRAY DE INTEIROS", 180, 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 );
     }
}


 

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.