Quando começamos nossa formação básica de java
usávamos muito o Iterator para percorrer uma lista,
mas engana-se quem acha que o Iterator perdeu o seu
uso com a chegada do foreach do java 5 em diante.
Os dois métodos mais importantes e usados do Interator
são: hasNext() ( retorna um boolean ), enquanto existir um
objeto a ser percorrido, e next(), retorna o próximo objeto
até que todos terminem de ser percorridos.
Neste programa geramos 100 números de forma aleatória
através do método Math.random ( ) e inserimos numa lista
de ArrayList e imprimimos.
Dois textfields sendo o primeiro chamando o segundo,
serve como entrada de dados para o teclado, nestes textfields
colocamos os parâmetros de início e fim que são usados
pelo método remove do Iterator, assim removeremos com
muita facilidade a quantidade de elementos dentro desta
faixa de valores informado nos textfields.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
usávamos muito o Iterator para percorrer uma lista,
mas engana-se quem acha que o Iterator perdeu o seu
uso com a chegada do foreach do java 5 em diante.
Os dois métodos mais importantes e usados do Interator
são: hasNext() ( retorna um boolean ), enquanto existir um
objeto a ser percorrido, e next(), retorna o próximo objeto
até que todos terminem de ser percorridos.
Neste programa geramos 100 números de forma aleatória
através do método Math.random ( ) e inserimos numa lista
de ArrayList e imprimimos.
Dois textfields sendo o primeiro chamando o segundo,
serve como entrada de dados para o teclado, nestes textfields
colocamos os parâmetros de início e fim que são usados
pelo método remove do Iterator, assim removeremos com
muita facilidade a quantidade de elementos dentro desta
faixa de valores informado nos textfields.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
import java.util.ArrayList;
import java.util.Iterator;
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;
import javafx.event.EventHandler;
import javafx.scene.control.TextField;
import javafx.geometry.Insets;
import javafx.scene.layout.HBox;
import javafx.scene.input.KeyEvent;
import java.util.function.UnaryOperator;
import javafx.scene.control.TextFormatter;
import javafx.scene.control.TextFormatter.Change;
class Newclass {
static int pesq;
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 ( "Sair" );
public 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", 240, 290 );
}
///////////////////////////////////////////////////////////////////////////
public static Node But_ton_2 ( Stage stage ) {
btn_1.setPrefWidth ( 80 );// 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 remove ( ArrayList < Integer > arr ){
int i, tot = 0;
String str1 = " ";
Iterator < Integer > iterator = arr.iterator ( );
while ( iterator.hasNext ( ) ) {
Integer temp = iterator.next ( );
//Removendo os elementos a partir de
PROJETO.inicio
//Até PROJETO.fim, preenchidas pelos
textfields
if ( temp < PROJETO.inicio || temp > PROJETO.fim ) {
iterator.remove ( );
}
}
tot = PROJETO.TAM - 1 - arr.size ( );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Removemos
", 210, 80 );
ctx.setFill ( Color.RED );
ctx.fillText ( " " + tot, 300, 80 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "elementos da
lista ", 330, 80 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Abaixo os
", 210, 110 );
ctx.setFill ( Color.RED );
ctx.fillText ( " " + arr.size ( ), 280, 110 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "que restaram
", 310, 110 );
for ( i = 0; i < arr.size ( ); i++ ) {
if ( i % 10 == 0 ) {
str1 += "\n";
}
if ( arr.get ( i ) >= 0 && arr.get ( i ) <= 9 ){
str1 +=
"0";
}
str1 += arr.get ( i ) + " ";
}
ctx.setFill ( Color.BLACK );
ctx.fillText ( str1, 180, 130 );
}
//
////////////////////////////////////////////////////////////////////////
public void start ( Stage stage, ArrayList < Integer > arr ) {
stage.setTitle ( "ITERATOR -
REMOVENDO VALORES NUMA LISTA" );
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "ITERATOR -
REMOVENDO VALORES NUMA LISTA", 140, 50 );
// 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;" );
But_ton_2 ( stage );
remove ( arr );
Informe ( );
stage.setScene ( sce_ne );
ro_ot.getChildren ( ).addAll ( canvas, btn_1 );
stage.show ( );
}
}
////////////////////////////////////////////////////////////////////////////////
public class PROJETO extends Application {
public static int inicio, fim, TAM = 101;
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 ( "ENTER" );
static Newclass nova = new Newclass ( );
static TextField textField_1 = new TextField ( );
static TextField textField_2 = new TextField ( );
static HBox hbox_1 = new HBox ( textField_1 );
static HBox hbox_2 = new HBox ( textField_2 );
//
////////////////////////////////////////////////////////////////////////
public static void limitTextField ( TextField textField, int limit ) {
UnaryOperator < Change > textLimitFilter = change -> {
if ( change.isContentChange ( ) )
{
int newLength = change.getControlNewText ( ).length ( );
if ( newLength > limit ) {
String trimmedText = change.getControlNewText ( )
.substring ( 0, limit );
change.setText ( trimmedText );
int oldLength = change.getControlText ( ).length ( );
change.setRange ( 0, oldLength );
}
}
return change;
};
textField.setTextFormatter ( new TextFormatter < Object > (
textLimitFilter ) );
}
//
/////////////////////////////////////////////////////////////////////////
public static int remove_1 ( Stage stage, ArrayList < Integer > arr ) {
hbox_1.setPadding ( new Insets ( 290, 0, 10, 180 ) );
// Abaixo ajustamos o total de colunas do
TextField
textField_1.setPrefColumnCount ( 2 );
textField_1.setPromptText ( "ini" );
ctx.setFont ( Font.font ( "Tahoma", FontWeight.NORMAL, 12 ) );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "Início", 180, 280 );
textField_1.setOnKeyPressed ( new EventHandler < KeyEvent > ( ) {
@Override
public void handle ( KeyEvent event ) {
limitTextField ( textField_1, 2 );
if ( event.getCode ( ) == KeyCode.ENTER ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.BLUE );
// convertendo string
para inteiro
inicio = Integer.parseInt ( textField_1.getText ( ) );
if ( Integer.parseInt ( textField_1.getText ( ) ) >= 0
&& Integer.parseInt ( textField_1.getText ( ) ) < 100 ) {
remove_2 ( stage, arr );
}
}
}
} );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
public static int remove_2 ( Stage stage, ArrayList < Integer > arr ) {
hbox_2.setPadding ( new Insets ( 290, 0, 10, 410 ) );
// Abaixo ajustamos o total de colunas do
TextField
textField_2.setPrefColumnCount ( 2 );
textField_2.setPromptText ( "fim" );
ctx.setFont ( Font.font ( "Tahoma", FontWeight.NORMAL, 12 ) );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "Fim", 420, 280 );
textField_2.setOnKeyPressed ( new EventHandler < KeyEvent > ( ) {
@Override
public void handle ( KeyEvent event ) {
limitTextField ( textField_2, 2 );
if ( event.getCode ( ) == KeyCode.ENTER ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.BLUE );
// convertendo string
para inteiro
fim = Integer.parseInt ( textField_2.getText ( ) );
if ( Integer.parseInt ( textField_2.getText ( ) ) >= 0
&& Integer.parseInt ( textField_2.getText ( ) ) < 100 ) {
nova.start ( stage, arr );
}
}
}
} );
ro_ot.getChildren ( ).add ( hbox_2 );
return 0;
}
//
////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
stage.setTitle ( "ITERATOR -
REMOVENDO VALORES NUMA LISTA" );
// 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: green;" );
ctx.setFill ( Color.RED );
ctx.fillText ( "ITERATOR -
REMOVENDO VALORES NUMA LISTA", 140, 50 );
// Declarando ArrayList com valor pré-determinado
ArrayList < Integer > arr = new ArrayList < > ( 100 );
int i;
String str = " ";
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Abaixo os
", 190, 80 );
ctx.setFill ( Color.RED );
ctx.fillText ( " " + 100, 260, 80 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "elementos
gerados", 300, 80 );
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 14 ) );
// Preenchendo o ArrayList com laço for
for ( i = 1; i < TAM; i++ ) {
arr.add ( ( int ) ( Math.random ( ) * TAM - 1 ) );
}
for ( i = 0; i < arr.size ( ); i++ ) {
if ( i % 10 == 0 ) {
str += "\n";
}
if ( arr.get ( i ) >= 0 && arr.get ( i ) <= 9 ){
str += "0";
}
str += arr.get ( i ) + " ";
}
ctx.setFill ( Color.RED );
ctx.fillText ( str, 180, 100 );
//Textfiel_1
remove_1 ( stage, arr );
ro_ot.getChildren ( ).addAll ( canvas, hbox_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.