Criar uma classe

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!!

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!!!

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!!

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

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!!

[code]/**

  • 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 = 11111111111.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;
    }
    }

[/code]

Essa classe salva o cliente.

[code]// 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 );

  }

}

}[/code]

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)

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

Vcs são fera!!

[quote=el2004el]import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.ScrollPaneLayout; [/quote]

MVC que se foda, ne? :frowning:

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!!!

acrescentei essa função para nao deixar repetir o cpf.

[code]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;
    }
}[/code]

na classe salvar clientes coloquei assim

(validadorCPF.digitosRepetidos(fields.cpf.getText ())) &&

ele esta impedindo o cadastro.
o que será que está faltando aqui??

valeu.

Resolvi essa parada.
valeu!!!