quarta-feira, 31 de janeiro de 2018

Javafx - preenchendo um araay de inteiros com combox

 Esta é a primeira mensagem ao usuário:
"Escolha no combox o total de números
que deseja inserir no array".
Feito isto, agora é só escolher entre
os 100 números inseridos no combox quais
serão inseridos no Array de inteiros.
A inicialização deste combox é mais
avançada que o outro que postei a poucos
dias atrás.
No outro inicializamos como num ArrayList
de Strings, e neste iniciamos o combox
por um contador do while.
Detalhar o funcionamento deste programa
foge as regras do tópico, portanto o leitor
deverá comprovar seu desempenho por si próprio.

Veja abaixo imagens do programa em execução:



 

Veja abaixo o código do programa:



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, 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 ( "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, 242 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 240, 242 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 200, 260 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " MUITO OBRIGADO", 250, 320 );
     }
     // ////////////////////////////////////////////////////////////////////////
     public static int Inf_quant ( int vet [ ] ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         int a = 0, i;
         StringBuilder st = new StringBuilder ( );
         k++;
         int [ ] Vetor = new int [ tam + 2 ];   
         for ( i = 1; i < tam + 2; i++ ) {
              Vetor [ i ] = ' ';      
         }
         ctx.clearRect ( 180, 70, 200, 20 );
         ctx.clearRect ( 240, 70, 20, 20 );
         ctx.clearRect ( 260, 70, 200, 20 );
         ctx.clearRect ( 180, 70, 400, 20 );
         ctx.clearRect ( 180, 90, 400, 20 );
         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 );
         vet [ k ] = fim;
         st.append ( vet [ k ]  ); 
         for ( i = 1; i <= tam + 2; i++ ) {
              Vetor [ a ] = vet [ i  ];
              a++;
         }
         if ( k == tam + 2 ) {
              st = new StringBuilder ( );
              ctx.clearRect ( 180, 70, 400, 20 );
              for ( i = 1; i < tam + 2; i++ ) {
                   if ( Vetor [ i ] != ' ' )
                        if ( Vetor [ i ] % 10 == 0 )
                            st.append ("\n");
                   if ( Vetor [ i ] >= 0 && Vetor [ i ] <= 9 )
                        st.append ( "0" );
                   System.out.printf ( "%3d", Vetor [ i ] );
                   st.append ( Vetor [ i ] + "\t");
              }
              ctx.setFill ( Color.BLUE );
              ctx.fillText ( "Veja abaixo o array preenchido", 220, 80 );
              ctx.setFill ( Color.RED );
              ctx.fillText ( " " + st, 160, 110 );
              Informe ( );
         }
         return 0;
     }
     // ////////////////////////////////////////////////////////////////////////
     @SuppressWarnings ( "unchecked" )
     public static int Array_1 ( int vet [ ] ) {
         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 ( );
                   }                
                   Inf_quant ( vet );
              }
         } );
         grid.add ( cb, 1, 1 );
         return 0;
     }
     // ////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         stage.setTitle ( "JAVAFX - PREENCHENDO UM ARRAY COM COMBOX" );
         //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: black;" );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "PREENCHENDO UM ARRAY COM COMBOX", 150, 50 );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         int [ ] vet = new int [ TAM ];
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "Escolha no combox o total de números", 190, 80 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "que deseja inserir no array", 190, 100 );
         Array_1 ( vet );
         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.