Criar uma classe

11 respostas
E

Valeu por tentar me responder, Vou tentar explicar. Tenho uma agenda com as seguintes classes:Botoes Painel, SalvarClientes, PesquisarCliientes, ajuda, EditarClientes,ExcluirClientes, NovoCliente, rotuloClientes e clientes.(roda bacana).
Tenho exemplos aqui da minha facul e percebi que eles possuem essa validação e dei uma analisada, entao resolvi tentar inserir nessa agenda essa parte de validação para exercitar.
Já tentei fazer , mas nao to conseguindo.
Tambem baixei da net essa classe pronta com o nome de valCPF.
nao consigo fazer com que ela confira o cpf do cliente quando salvar.
nao sei se fui claro!!
valeu!!

11 Respostas

dooda

Epa epa epa… muita calma nessa hora =D

se você já tem a classe de validação, a que detalhes está se referindo?

quem não se explica, se complica… :wink:

grande abraço!!!

E

Valeu por tentar me responder, Vou tentar explicar. Tenho uma agenda com as seguintes classes:Botoes Painel, SalvarClientes, PesquisarCliientes, ajuda, EditarClientes,ExcluirClientes, NovoCliente, rotuloClientes e clientes.(roda bacana).
Tenho exemplos aqui da minha facul e percebi que eles possuem essa validação e dei uma analisada, entao resolvi tentar inserir nessa agenda essa parte de validação para exercitar.
Já tentei fazer , mas nao to conseguindo.
Tambem baixei da net essa classe pronta com o nome de valCPF.
nao consigo fazer com que ela confira o cpf do cliente quando salvar.
nao sei se fui claro!!
valeu!!

thegoergen

Tenta explicar melhor… Onde tu quer colocar a validação??

dooda

Olha, ta melhorando...

Veja, se tu quizer essa tua classe, basicamente vc precisa instanciar ela tipo

ValCPF validador = new ValCPF();

Ou da um olhada nela, pra ver se possui algum constructor diferenciado...
e chamar o metodo que valida (vc só vai saber qual olhando também...)

pra faciliatar mais cole o código da sua classe ValCPF.java pra gente
(lembre-se de usar aqui no forum as tag's [code])

grande abraco!!

E
/**
 * valCPF.java

 */
import java.lang.Double;
import java.lang.*;
import java.util.*;
        
public class valCPF {  
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Rotina main para testar o metodo validaCPF
        Scanner leTeclado = new Scanner( System.in );
        valCPF objeto = new valCPF();
        System.out.println("Informe o CPF (Apenas os numeros) :");
        String numeroCPF = leTeclado.next();
        boolean cpfValido = objeto.validaCPF(numeroCPF);
        if (cpfValido==true) System.out.println("O CPF numero " + numeroCPF + " e Valido!"); else System.out.println("O CPF numero " + numeroCPF + " e Invalido!");
    }    
 /**
 * Metodo: validaCPF
 * Entrada(s): (string) recebe uma string contendo os dados de um cpf para validacao
 * Saída: (boolean) retorna true para cpf válido e false para inválido
 */
    public boolean validaCPF(String numCPF){
     int primeiroDigito =0;
     int segundoDigito =0;
     int posicao = 0;          
     if (numCPF.length() != 11) return false; // CPF com digitos diferente de 11 (CPF Invalido)  
     double mum_cpf = Double.parseDouble(numCPF); 
     double numDiv = [telefone removido].0;
     if ((mum_cpf % numDiv) == 0.0) return false; //testa se todos os digitos são iguais (CPF Invalido)
     for(int i=11;i>1;i--) 
      {
       if (i<11) primeiroDigito= primeiroDigito + Integer.parseInt(numCPF.substring ((posicao-1),posicao)) * i;
       segundoDigito= segundoDigito + Integer.parseInt(numCPF.substring (posicao,posicao+1)) * i; 
       posicao=posicao + 1; 
      }
     primeiroDigito = primeiroDigito % 11;
     segundoDigito = segundoDigito % 11;
     if (primeiroDigito <2) primeiroDigito=0; else primeiroDigito = 11 - primeiroDigito;
     if (segundoDigito <2) segundoDigito=0; else segundoDigito = 11 - segundoDigito;
     if ((primeiroDigito ==  Integer.parseInt(numCPF.substring(9, 10))) && (segundoDigito ==  Integer.parseInt(numCPF.substring(10, 11))))  return true; else return false;
   }
}

Essa classe salva o cliente.

// SalvarClientes.java
// Definição de classe SalvarClientes
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;

public class SalvarClientes implements ActionListener {
   private RotuloClientes fields;
   private JTextArea output;
   private Connection connection;


   public SalvarClientes( Connection c, RotuloClientes f, 
                     JTextArea o )
   {
      connection = c;
      fields     = f;
      output     = o;
   }

   public void actionPerformed( ActionEvent e )
   {
      try {
         Statement statement = connection.createStatement();

         if ( !fields.cpf.getText().equals( "" ) &&
              !fields.primeironome.getText().equals( "" ) ) {
            String query = "INSERT INTO addresses (" +
               "cpf,primeironome, ultimonome, endereco, cidade, " +
               "estado, cep, pais, " +
               "email, telcasa, telcelular" +
               ") VALUES ('" +
               fields.cpf.getText() + "', '" + 
               fields.primeironome.getText() + "', '" + 
               fields.ultimonome.getText() + "', '" + 
               fields.endereco.getText() + "', '" + 
               fields.cidade.getText() + "', '" + 
               fields.estado.getText() + "', '" + 
               fields.cep.getText() + "', '" + 
               fields.estado.getText() + "', '" + 
               fields.email.getText() + "', '" + 
               fields.telcasa.getText() + "', '" + 
               fields.telcelular.getText() + "')";

            int result = statement.executeUpdate( query );
               
            
            
            
            
            
            if ( result == 1 )
              JOptionPane.showMessageDialog(
              null, "A inseção foi um sucesso.", "Aviso",
              JOptionPane.PLAIN_MESSAGE );
            else {
              JOptionPane.showMessageDialog(
              null, "A inserção falhou!.", "Aviso",
              JOptionPane.WARNING_MESSAGE );
               
               fields.cpf.setText( "" );
               fields.primeironome.setText( "" );
               fields.ultimonome.setText( "" );
               fields.endereco.setText( "" );
               fields.cidade.setText( "" );
               fields.estado.setText( "" );
               fields.cep.setText( "" );
               fields.pais.setText( "" );
               fields.email.setText( "" );
               fields.telcasa.setText( "" );
               fields.telcelular.setText( "" );
               

            }
         }
         else{
              JOptionPane.showMessageDialog(
              null, "Digite o CPF \n" + " Nome e\n" + "o Sobrenome e aperte\n" + "o botão Salvar\n" , "Aviso", JOptionPane.WARNING_MESSAGE );

         statement.close();
         }
      }
      catch ( SQLException sqlex ) {
         JOptionPane.showMessageDialog(
         null, sqlex.toString(), "Aviso",
         JOptionPane.WARNING_MESSAGE );

      }
   }
   
}
dooda

Opa, agora clareou tudo mano :wink:
Vamos lá entao…

Primeiramente, se vc QUIZER, pode apagar o método main() da sua classe valCPF (da linha 14 ate 22),
ele só te server para “executar” essa classe separadamente para testar a validacao…

e quanto a validação, ta bem facil aí pra ti, vc pode ver no próprio comentário do método valida (linha 24 ate 26)
que vc passa o número do CPF como String e ele retorna um Boolean caso seja válido ou não, então
vc pode simplemente instanciar o validador e chamar o método, atribuindo ou nao seu resultado a uma
váriável booleana para comparação mais tarde…

Ou ainda, e como vc está querendo fazer a validacao direto na sua gravacao…

public void actionPerformed( ActionEvent e )  
    {  
       try {  
          Statement statement = connection.createStatement();  

          valCPF validadorCPF = new valCPF();   

          if (validadorCPF.validaCPF(fields.cpf.getText()) &&
              !fields.cpf.getText().equals( "" ) &&  
              !fields.primeironome.getText().equals( "" ) ) {
  
            //
            //Continua normalmente seu SQL de insercao...
            //

Tentaí mano, se nao conseguir ou continuar qualquer dúvida, manda denovo…
akele abraço!!
8)

E

Cara, valeu!! Consegui. Obrigado por me ajudar.
Vou perguntar sempre aqui quando tiver dúvida.
Obrigado novamente.

Vcs são fera!!

cv1

el2004el:
import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.ScrollPaneLayout;

MVC que se foda, ne? :frowning:

dooda

calma lá mano, didáticas da graduação neh…

deixa o cara brincar sem se preocupar com oq vai se quando crescer…
oIUSHoiUHSoiUHSoiHSouiHS :wink:

abraço!!!

E
acrescentei essa função para nao deixar repetir o cpf.
public boolean digitosRepetidos(String digitos)
    {
        int cont=0;
        char a,b;
        
        //percorre cada caracter e compara com o próximo
        for(int i=0;i<digitos.length()-1;i++){
            a = digitos.charAt(i);
            b = digitos.charAt(i+1);
            if(a==b){
               cont++; //incrementa cont caso o carácter atual seja igual ao próximo
            }
        }
        
        //se o número de dígitos iguais for igual ao tamanho da string retorna true, caso contrário false
        if(cont==(digitos.length()-1)){
            return true;
        }else{
            return false;
        }
    }

na classe salvar clientes coloquei assim

(validadorCPF.digitosRepetidos(fields.cpf.getText ())) &&
ele esta impedindo o cadastro. o que será que está faltando aqui??

valeu.

E

Resolvi essa parada.
valeu!!!

Criado 27 de março de 2008
Ultima resposta 8 de abr. de 2008
Respostas 11
Participantes 4