Então Nivekzin,
Seus métodos modificadores estão bem estranhos, você faz isso aqui, por exemplo:
public void setCPF(int cpf) {
cpf = Integer.parseInt(cpfString);
this.cpf = cpf;
}
Seu código não fez o menor sentido pra mim, cara! Você está tentando jogar um valor do intrínseco int no seu cpf que também é int, até aí correto, mas pegando de uma String que nem é utilizada. Ela sempre estará branca ou nula.
Você não precisa dessas Strings nem dos ints, apenas dos JTextFields da tela.
Daí na hora de persistir no banco você realiza as operações em cima do método getText() de cada um desses JTextField.
Por exemplo:
Se você precisa persistir o CPF como um número faça a validação na hora de persistir. Ao pressionar o botão OK, manda ele chamar um método que valide os campos, mais ou menos assim:
public boolean validaCampos() {
final String nome = this.nameField.getText();
final String email = this.nameField.getText();
final String endereco = this.nameField.getText();
final String telefone = this.nameField.getText();
final String dataNascimento = this.nameField.getText();
final String cpf = this.nameField.getText();
final String rg = this.nameField.getText();
if (Util.isBlankOrNull(nome) || Util.isBlankOrNull(email) || Util.isBlankOrNull(endereco) || Util.isBlankOrNull(telefone) || Util.isBlankOrNull(dataNascimento) ||
Util.isBlankOrNull(cpf) || Util.isBlankOrNull(cpf)) {
JOptionPane.showMessageDialog(this, "Nenhum campo pode estar em branco.");
return false;
}
if (!Util.validaData(dataNascimento)) {
JOptionPane.showMessageDialog(this, "Data de nascimento inválida. Utiliza o padrão dd/mm/aaaa");
return false;
}
if (!Util.validaNumerosInteiros(cpf) || !Util.validaNumerosInteiros(rg)) {
JOptionPane.showMessageDialog(this, "CPF ou RG inválidos");
return false;
}
if (!Util.validaEmail(email)) {
JOptionPane.showMessageDialog(this, "E-mail inválido");
return false;
}
// Validando o CPF segundo as normas governamentais
if (!Util.validaCPF(cpf)) {
JOptionPane.showMessageDialog(this, "CPF inválido");
return false;
}
return true;
}
Daí depois é só criar uma classe chamada Util, mais ou menos assim:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.regex.Pattern;
public final class Util {
public static boolean isBlankOrNull(final String str) {
return (str == null) || (str.trim().length() == 0);
}
public static boolean validaEmail(String email) {
return Pattern.compile(".+@.+\.[a-z]+").matcher(email).matches();
}
public static boolean validaNumerosInteiros(final String string) {
// Substituo na string tudo que for diferente de número.
final String seuCampo = string.replace("\D", "");
try {
Integer.parseInt(seuCampo);
} catch (final NumberFormatException e) {
return false;
}
return true;
}
public static boolean validaCPF(final String cpf) {
if (cpf == null || cpf.length() != 11) {
return false;
}
final String numDig = cpf.substring(0, 9);
if (numDig.equals("000000000") || numDig.equals("111111111") || numDig.equals("222222222") || numDig.equals("333333333") || numDig.equals("444444444") ||
numDig.equals("555555555") || numDig.equals("666666666") || numDig.equals("777777777") || numDig.equals("888888888") || numDig.equals("999999999")) {
return false;
}
int soma = 0, peso = 10;
for (int i = 0; i < numDig.length(); i++) {
soma += Integer.parseInt(numDig.substring(i, i + 1)) * peso--;
}
Integer primDig, segDig;
if (soma % 11 == 0 | soma % 11 == 1) {
primDig = Integer.valueOf(0);
} else {
primDig = Integer.valueOf(11 - (soma % 11));
}
soma = 0;
peso = 11;
for (int i = 0; i < numDig.length(); i++) {
soma += Integer.parseInt(numDig.substring(i, i + 1)) * peso--;
}
soma += primDig.intValue() * 2;
if (soma % 11 == 0 | soma % 11 == 1) {
segDig = Integer.valueOf(0);
} else {
segDig = Integer.valueOf(11 - (soma % 11));
}
return cpf.substring(9, 11).equals(primDig.toString() + segDig.toString());
}
public static boolean validaData(final String data) {
final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
sdf.setLenient(false);
sdf.parse(data);
return true;
} catch (final ParseException e) { /**/
return false;
}
}
}
Espero ter ajudado.