Dúvida em código que verifica o CPF

Bom dia pessoal vejam se conseguem me ajudar.

Ao executar o código abaixo ocorre um erro na linha onde eu transformo o texto digitado em um inteiro.

import java.awt.;
import java.awt.event.
;
import javax.swing.;
import java.text.
;
import javax.swing.text.*;

public class testandoCpf extends JFrame{

JFormattedTextField cpf;
MaskFormatter mascaraCpf;
JButton verificar;

public testandoCpf(){
	
	super ("Verificação de CPF");
	
	Container tela = getContentPane();
	
	tela.setLayout(null);
	
	try{
		
		mascaraCpf = new MaskFormatter("###########");
	}
	catch(ParseException excp){}
	
	cpf = new JFormattedTextField(mascaraCpf);
	verificar = new JButton("Verificar");
	
	cpf.setBounds(20,20,90,20);
	verificar.setBounds(20,60,90,20);
	
	verificar.addActionListener(
			 
			new ActionListener(){
				
				public void actionPerformed(ActionEvent e){
					
					int  num,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,d1,d2;
					
					 [b]num = Integer.parseInt(cpf.getText() );[/b]

Desde já agradeço a atenção.

Fala cara blz?

Nao da para identificar apenas pelo que vc ta fazendo ai oq ta acontecendo, mais como vc falo que da erro de formatacao quando transforma pra inteiro da pra identificar que quando vc da cpf.getText() ta vindo algum valor ai que nao eh apenas numeros, por acaso vc ta digitando o cpf com “.” ? pq se for ta errado mesmo e vai dar erro.

PS: Sempre posta blocos de codigo com as tags pra ficar formatado da uma lida nesse link que explica como fazer: http://www.guj.com.br/posts/list/50115.java

Como o alexandreaw disse, o Integer.parseInt() só vai funcionar se o getText() tiver trazendo só números.
Comenta a linha de parse e imprime o conteúdo de getText() só pra ver o que ele está trazendo.

Abraços,

Se vc puder acrescentar libs (jar) no seu projeto, eu sugiro fortemente o projeto BrazilUtils:

https://brazilutils.dev.java.net/
http://www.guj.com.br/posts/list/20643.java

Ele funciona bem para validar CPF e CNPJ, e vc não precisa reinventar a roda.

Cara existem duas possibilidades.

1° Pode estar estourando o int já que é um cpf e tem 11 digitos

Solução parsear para long.

long l = Long.parseLong("teuCpf");

2° Pode ter algum caractere na tua String dai da erro.

podes utilizar tbm o stella.

http://www.guj.com.br/posts/list/91564.java

Abraço.

É verdade… é CPF… li CEP…
Pode sim, e é muitoprovável, que esteja estourando…
O range de um int é de -2 147 483 648 a 2 147 483 647…

Abraços,

Guarde números de documentos em Strings(no nível mais baixo), eles são números somente em nome, integer, long é só para operações matemáticas.

De preferencia use uma classe CPF para encapsular o problema.

Consegui galera !!!

Usei o long ao invés do int e funcionou. Estava errando tbm na hora de separar os números para poder fazer a conta.

Muito obrigado, foram muito válidas as informações. :lol:

[quote=fkimura]Se vc puder acrescentar libs (jar) no seu projeto, eu sugiro fortemente o projeto BrazilUtils:

https://brazilutils.dev.java.net/
http://www.guj.com.br/posts/list/20643.java

Ele funciona bem para validar CPF e CNPJ, e vc não precisa reinventar a roda.
[/quote]

Valeu Kimura, mas como sou iniciante na linguagem eu tentei fazer para poder aprender tbm. :wink:

Flw então cara.

Abraço.