This is the class that validates the CNPJ:
package br.com.Sistema.meuProjeto;
import java.util.InputMismatchException;
public class ValidaCNPJ {
public static boolean isCNPJ(String cnpjFornec) {
// considera-se erro CNPJ's formados por uma sequencia de numeros iguais
if (cnpjFornec.equals("00000000000000") || cnpjFornec.equals("11111111111111") ||
cnpjFornec.equals("22222222222222") || cnpjFornec.equals("33333333333333") ||
cnpjFornec.equals("44444444444444") || cnpjFornec.equals("55555555555555") ||
cnpjFornec.equals("66666666666666") || cnpjFornec.equals("77777777777777") ||
cnpjFornec.equals("88888888888888") || cnpjFornec.equals("99999999999999") ||
(cnpjFornec.length() != 14))
return(false);
char dig13, dig14;
int sm, i, r, num, peso;
// "try" - protege o código para eventuais erros de conversao de tipo (int)
try {
// Calculo do 1o. Digito Verificador
sm = 0;
peso = 2;
for (i=11; i>=0; i--) {
// converte o i-ésimo caractere do CNPJ em um número:
// por exemplo, transforma o caractere '0' no inteiro 0
// (48 eh a posição de '0' na tabela ASCII)
num = (int)(cnpjFornec.charAt(i) - 48);
sm = sm + (num * peso);
peso = peso + 1;
if (peso == 10)
peso = 2;
}
r = sm % 11;
if ((r == 0) || (r == 1))
dig13 = '0';
else dig13 = (char)((11-r) + 48);
// Calculo do 2o. Digito Verificador
sm = 0;
peso = 2;
for (i=12; i>=0; i--) {
num = (int)(cnpjFornec.charAt(i)- 48);
sm = sm + (num * peso);
peso = peso + 1;
if (peso == 10)
peso = 2;
}
r = sm % 11;
if ((r == 0) || (r == 1))
dig14 = '0';
else dig14 = (char)((11-r) + 48);
// Verifica se os dígitos calculados conferem com os dígitos informados.
if ((dig13 == cnpjFornec.charAt(12)) && (dig14 == cnpjFornec.charAt(13)))
return(true);
else return(false);
} catch (InputMismatchException erro) {
return(false);
}
}
public static String imprimeCNPJ(String cnpjFornec) {
// máscara do CNPJ: 99.999.999.9999-99
return(cnpjFornec.substring(0, 2) + "." + cnpjFornec.substring(2, 5) + "." +
cnpjFornec.substring(5, 8) + "." + cnpjFornec.substring(8, 12) + "-" +
cnpjFornec.substring(12, 14));
}
}
THIS CLASS HERE IS WHERE I AM MAKING THE REGISTRATION
package br.com.Sistema.telas;
import meuProjetoDuvida.ValidaCNPJ;
public class CADASTRO extends JInternalFrame {
private JTextField cnpjFornec;
public CADASTRO() {
setMaximizable(true);
setIconifiable(true);
setClosable(true);
setBounds(0, 0, 600, 440);
getContentPane().setLayout(null);
JLabel lblCnpjCpf = new JLabel("CNPJ / CPF");
lblCnpjCpf.setBounds(60, 146, 81, 14);
getContentPane().add(lblCnpjCpf);
JButton btnCadastrar = new JButton("");
btnCadastrar.setBounds(139, 214, 50, 50);
btnCadastrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cadastroFornec();
}
});
btnCadastrar.setIcon(new ImageIcon("C:\ambiente_de_trabalho\teste\Nova_Sao_Paulo\icones\adiciona.png"));
getContentPane().add(btnCadastrar);
cnpjFornec = new JTextField();
cnpjFornec.setColumns(10);
cnpjFornec.setBounds(195, 143, 163, 20);
getContentPane().add(cnpjFornec);
JScrollBar scrollBar = new JScrollBar();
scrollBar.setBounds(567, 42, 17, 105);
}
private void cadastroFornec() {
String sql = "insert into fornecedores( cnpj_fornec) values(?)";
try {
// valida o cpf
if (ValidaCNPJ.isCNPJ(cnpjFornec.getText()) == true) {
System.out.printf("%s\n", ValidaCNPJ.imprimeCNPJ(cnpjFornec.getText()));
// VALIDAÇAO DOS CAMPOS OBRIGATORIOS
if ((cnpjFornec.getText().isEmpty())) {
JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatório");
} else {
if (ValidaCNPJ.isCNPJ(cnpjFornec.getText()) == true) {
// A ESTRUTA ABAIXO SERVE PARA CONFIRMA PARA INSERÇÃO NA TABELA DE DADOS
int adicionado = pst.executeUpdate();
// A LINHA ABAIXO SERVE DE APOIO AO ENTENDIMENTO DA LOGICA
if (adicionado > 0) {
JOptionPane.showMessageDialog(null, "Fornecedor adicioinado com sucesso");
cnpjFornec.setText(null);
}
} else { // System.out.printf("Erro, CNPJ inválido !!!\n");
JOptionPane.showMessageDialog(null, "Erro, CNPJ inválido !!!\n");
cnpjFornec.setText(null);
}
}
} else {
System.out.printf("Erro, CNPJ inválido !!!\n");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
}
Only problem is that when I do the registry it does not print in the database this way 45.841.637 / 0001-49. and if I type so 45,841,637 / 0001-49 of the error I need to type so 45841637000149 however it stays thus tb in the database ...