acho muito justo também criarmos um verificador,
precisamos saber se os cpfs criados por nós são válidos.
Por isto ser tão justo criei este programa que faz
validação de um cpf inserido em sua entrada de dados.
Acompanhe nas várias imagens e no vídeo do post primeiro.
Veja abaixo imagens do programa em execução:
Veja abaixo um vídeo do programa em execução
Veja abaixo o código do programa:
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.paint.Color;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextField;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import java.util.function.UnaryOperator;
import javafx.scene.control.TextFormatter;
import javafx.scene.control.TextFormatter.Change;
public class PROJETO extends Application {
static String [ ] receita = {
"CPF é o Cadastro de Pessoa Física,\n",
"um número composto por 11 dígitos\n",
"que fica registrado na Receita
Federal\n",
"armazenando informações sobre
cada pessoa.\n",
"Este programa não tem ligação
alguma\n",
"com a receita federal,\n",
"e os cpfs aqui gerados mesmo válidos\n",
"não estão vinculados, isto
significa\n",
"que eles não existem.\n"};
static TextField textField_1 = new TextField ( );
static HBox hbox_1 = new HBox ( textField_1 );
static StringBuilder st = new StringBuilder ( );
static int Vet_cpf [ ] = new int [ 12 ];
static int Vet_cpf_2 [ ] = new int [ 12 ];
static int Vet_cpf_3 [ ] = new int [ 12 ];
static int val_cpf [ ] = { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
static int val_cpf_2 [ ] = { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
static int n = 9;
static int a = 0, e = 0, f = 0, g = 0, h = 0,
i = 0, j = 0, l = 0, o = 0, u = 0, tot = 0;
static String str_1;
public static Label lbl = new Label ( );
public static Label lbl_2 = new Label ( );
static Text t_1 = new Text ( );
static Text t_2 = new Text ( );
static Text t_3 = new Text ( );
static Text t_4 = new Text ( );
static Text t_5 = new Text ( );
static Text t_6 = new Text ( );
static VBox vbox = new VBox ( );
static GridPane grid = new GridPane ( );
static MenuBar menuBar = new MenuBar ( );
static Pane ro_ot = new Pane ( );
static BorderPane root = new BorderPane ( );
static Scene scene = new Scene ( vbox, 500, 300 );
//
/////////////////////////////////////////////////////////////////////////
public static int Menu_Bar ( ) {
EventHandler < ActionEvent > action = changeTabPlacement ( );
Menu menu = new Menu ( "Arq" );
MenuItem cpf = new MenuItem ( "Cpf" );
MenuItem sair = new MenuItem ( "Sair" );
MenuItem sobre = new MenuItem ( "Sobre" );
menu.getItems ( ).add ( cpf );
menu.getItems ( ).add ( sobre );
menu.getItems ( ).add ( sair );
cpf.setOnAction ( action );
sobre.setOnAction ( action );
sair.setOnAction ( action );
menuBar.getMenus ( ).add ( menu );
root.setTop ( menuBar );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
private static EventHandler < ActionEvent > changeTabPlacement ( ) {
String args = "";
return new EventHandler < ActionEvent > ( ) {
public void handle ( ActionEvent event ) {
MenuItem mItem = ( MenuItem ) event.getSource ( );
String side = mItem.getText ( );
if ( "Cpf".equalsIgnoreCase ( side ) ) {
st = new StringBuilder ( );
tot = 0;
textField_1.clear ( );
textField_1.setDisable ( false );
textField_1.setVisible ( true );
lbl_2.setVisible ( true );
t_1.setDisable ( true );
t_1.setVisible ( false );
t_4.setDisable ( true );
t_4.setVisible ( false );
t_5.setDisable ( true );
t_5.setVisible ( false );
t_6.setDisable ( true );
t_6.setVisible ( false );
Pesquisa ( args );
}
else if ( "Sobre".equalsIgnoreCase ( side ) ) {
int i = 0;
st = new StringBuilder ( );
for ( i = 0; i < receita.length; i++ ) {
st.append ( receita [ i ] );
}
t_1.setX ( 120 );
t_1.setY ( 80 );
t_1.setFill ( Color.BLACK );
t_1.setText ( " " + st );
t_1.setDisable ( false );
t_1.setVisible ( true );
t_4.setDisable ( true );
t_4.setVisible ( false );
t_5.setDisable ( true );
t_5.setVisible ( false );
t_6.setDisable ( true );
t_6.setVisible ( false );
lbl_2.setVisible ( false );
textField_1.setDisable ( true );
textField_1.setVisible ( false );
}
if ( "Sair".equalsIgnoreCase ( side ) ) {
System.exit ( 0 );
}
root.getChildren ( ).addAll ( t_1 );
}
};
}
//
/////////////////////////////////////////////////////////////////////////
public static void Gera_Cpf ( ) {
t_6.setFont ( Font.font ( "Tahoma", FontWeight.BOLD, 16 ) );
//Convertendo string em array de inteiro
Vet_cpf = new int [ str_1.length ( ) ];
for ( i = 0; i < Vet_cpf.length; i++ ) {
Vet_cpf [ i ] = Integer.parseInt
( str_1.substring ( i, i + 1 ) );
//System.out.print ( " " );
//System.out.print ( Vet_cpf [ i ] );
}
// Abaixo o cpf informado
for ( i = 0; i < 11; i++ ) {
if ( i == 3 )
st.append ( "." );
if ( i == 6 )
st.append ( "." );
if ( i == 9 )
st.append ( " - " );
st.append ( Vet_cpf [ i ] );
}
t_4.setDisable ( false );
t_4.setVisible ( true );
t_4.setX ( 120 );
t_4.setY ( 120 );
t_4.setFill ( Color.BLUE );
t_4.setText ( "Abaixo o cpf
informado" );
t_5.setDisable ( false );
t_5.setVisible ( true );
t_5.setX ( 120 );
t_5.setY ( 150 );
t_5.setFill ( Color.RED );
t_5.setText ( " " + st );
o = Vet_cpf [ 9 ];
u = Vet_cpf [ 10 ];
for ( i = 0; i < 9; i++ ) {
Vet_cpf_2 [ i ] = Vet_cpf [ i ] * val_cpf [ i ];
e = e += Vet_cpf_2 [ i ];
}
f = e % 11;
g = 11 - f;
if ( g > 9 )
g = 0;
Vet_cpf [ 9 ] = g;
for ( i = 0; i < 10; i++ ) {
Vet_cpf_3 [ i ] = Vet_cpf [ i ] * val_cpf_2 [ i ];
h = h += Vet_cpf_3 [ i ];
}
j = h % 11;
l = 11 - j;
if ( l > 9 )
l = 0;
t_6.setDisable ( false );
t_6.setVisible ( true );
if ( g == o && l == u ) {
System.out.print ( "O cpf é válido" );
t_6.setX ( 120 );
t_6.setY ( 180 );
t_6.setFill ( Color.BLACK );
t_6.setText ( "O cpf é válido" );
} else {
System.out.print ( "O cpf não é válido" );
t_6.setX ( 120 );
t_6.setY ( 180 );
t_6.setFill ( Color.BLACK );
t_6.setText ( "O cpf não é válido" );
}
// As variáveis são resetadas para
// serem usadas numa nova verificação.
e = 0;
f = 0;
g = 0;
h = 0;
i = 0;
j = 0;
l = 0;
}
//
/////////////////////////////////////////////////////////////////////////
// Este método limita o total de caracteres da
String textst.
// O total é informado em um dos parâmetros do
método.
public static void bloq_textfield ( TextField textField, int limit ) {
UnaryOperator < Change > filtro = change -> {
if ( change.isContentChange ( ) )
{
int newLength = change.getControlNewText ( ).length ( );
if ( newLength > limit ) {
String textst = change.getControlNewText ( )
.substring ( 0, limit );
change.setText ( textst );
int oldLength = change.getControlText ( ).length ( );
change.setRange ( 0, oldLength );
}
}
return change;
};
textField.setTextFormatter ( new TextFormatter < Object > ( filtro ) );
}
//
/////////////////////////////////////////////////////////////////////////
public static int Pesquisa ( String args ) {
t_4.setFont ( Font.font ( "Tahoma", FontWeight.NORMAL, 14 ) );
t_5.setFont ( Font.font ( "Tahoma", FontWeight.BOLD, 16 ) );
// Posiciona o local exato do textfield
hbox_1.setPadding ( new Insets ( 43, 0, 10, 165 ) );
// Abaixo ajustamos o total de colunas do
TextField
textField_1.setPrefColumnCount ( 11 );
textField_1.setPromptText ( "insira um
cpf" );
textField_1.setOnKeyPressed ( new EventHandler < KeyEvent > ( ) {
@Override
public void handle ( KeyEvent event ) {
bloq_textfield ( textField_1, 11 );
// Este evento aceita
apenas a tecla "ENTER" na entrada.
if ( event.getCode ( ) == KeyCode.ENTER ) {
// copiando a entrada
do textfield numa string
str_1 = ( textField_1.getText ( ) );
Gera_Cpf ( );
}
}
} );
ro_ot.getChildren ( ).addAll ( hbox_1 );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) throws Exception {
stage.setTitle ( "JAVAFX -
VERIFICADOR DE CPFS" );
Menu_Bar ( );
// Usando fonte em italic
lbl.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 16 ) );
// Posiciona o label na horizontal
lbl.setLayoutX ( 110 );
// Posiciona o label na vertical
lbl.setLayoutY ( 10 );
// Aplica cor no rótulo
lbl.setTextFill ( Color.RED );
lbl.setText ( "JAVAFX -
VERIFICADOR DE CPFS" );
t_3.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 26 ) );
t_3.setX ( 120 );
t_3.setY ( 250 );
t_3.setFill ( Color.BLACK );
t_3.setDisable ( false );
t_3.setVisible ( true );
t_3.setText ( "Por: Samuel Lima" );
// Criando moldura
vbox.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;" );
ro_ot.getChildren ( ).addAll ( lbl, lbl_2 );
root.getChildren ( ).addAll ( t_3, t_4, t_5, t_6 );
vbox.getChildren ( ).addAll ( root, ro_ot, grid );
stage.setScene ( scene );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.