Olá!
Vou ser o mais claro possível para que eu possa ser ajudado sou novato em Java.
estou desenvolvendo uma aplicação pessoa que deu inicio a partir de um projeto da faculdade esta aplicação esta em Java Swing estou utilizando o NetBeans.
Necessidade: na minha Frame de cadastro de empresa tenho uma campo de CNPJ que ao digitar ele consome a API da Receitaws.
Problema: O formulário nao esta sendo preenchido totalmente como o esperado. não consigo fazer extração de um array do Json, todos os campos são preenchidos corretamente menos o de Atividade principal e secundaria que são um array de array.
Obs: o campo de Atividade principal e secundaria e um TextArea, ha alguma linhas comentadas fiz pq ela esta causando erro. se poderem me ajudar nisso tbm agradeço.
Objetivo: preencher todos os campos do formulario, vou postar os códigos.
Este e o código que vai na view onde tem o campo de texto que inseri o cnpj pra consulta.
private void txtCnpjKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
txtNome.setText("Aguarde...");
if (txtCnpj.getText().length() == 14) {
try {
Empresa empresa = new Empresa();
empresa = IntegracaoApiBS.buscarCnpj(txtCnpj.getText());
DecimalFormat df = new DecimalFormat("###,###,###,##0.00");
txtCnpj.setText(empresa.getCnpj());
lblStatusCep.setIcon(empresa.getLblStatusCnpj());
txtCnpj.setText(empresa.getCnpj());
txtTipo.setText(empresa.getTipo());
txtInscricaoEstadual.setText(empresa.getTxtInscricaoEstadual());
txtNome.setText(empresa.getNome());
txtNomeFantasia.setText(empresa.getFantasia());
txtDataAbertura.setText(empresa.getAbertura());
txtPorte.setText(empresa.getPorte());
txtEmail.setText(empresa.getEmail());
txtSituacaoCadastral.setText(empresa.getSituacao());
txtCapitalSocial.setText(df.format(Double.parseDouble(empresa.getCapital_social())));
txtDataSituacaoCadastral.setText(empresa.getData_situacao());
txtAtividadePrincipal.setText(empresa.getAtividade_principal().toString());
txtAtividadeSecundaria.setText(empresa.getAtividades_secundarias().toString());
//txtNaturezaJuridica.setText(empresa.getNatureza_juridica().toString());
txtTelefone.setText(empresa.getTelefone());
txtCelular.setText(empresa.getTxtCelular());
txtResponsalvel.setText(empresa.getTxtResponsalvel());
txtEndereco.setText(empresa.getLogradouro());
txtNumero.setText(empresa.getNumero());
txtComplemento.setText(empresa.getComplemento());
txtBairro.setText(empresa.getBairro());
txtCidade.setText(empresa.getMunicipio());
cmbEstado.setSelectedItem(empresa.getUf());
txtCep.setText(empresa.getCep());
} catch (Exception ex) {
}
}
}
Aqui e a classe Empresa onde contem os Getters e Setters declarado comforme a solicitação do site Receita WS
package model;
import Dao.EmpresaDao; import business.IntegracaoApiBS; import java.util.*; import javax.swing.Icon;
public class Empresa {private String cnpj;
private String nome;
private String fantasia;
private String porte;
//private ArrayList<AtividadeDto> natureza_juridica = new ArrayList<>();
private String situacao;
private String data_situacao;
private String abertura;
private ArrayList<AtividadeDto> atividade_principal = new ArrayList<>();
private ArrayList<AtividadeDto> atividades_secundarias = new ArrayList<>();
private String capital_social;
private String email;
private String telefone;
private String tipo;
private String logradouro;
private String numero;
private String complemento;
private String municipio;
private String bairro;
private String uf;
private String cep;
private String txtId;
private String txtDataCadastro;
private String txtInscricaoEstadual;
private String txtPesquisar;
private String txtResponsalvel;
private String txtCelular;
private Icon lblStatusCnpj;
public EmpresaDao empresa = new EmpresaDao();
public Endereco endereco = new Endereco();
public static IntegracaoApiBS consulta = new IntegracaoApiBS();
public Empresa() {
}
public ArrayList<AtividadeDto> getAtividade_principal() {
return atividade_principal;
}
public void setAtividade_principal(ArrayList<AtividadeDto> atividade_principal) {
this.atividade_principal = atividade_principal;
}
public ArrayList<AtividadeDto> getNatureza_juridica() {
return natureza_juridica;
}
public void setNatureza_juridica(ArrayList<AtividadeDto> natureza_juridica) {
this.natureza_juridica = natureza_juridica;
}
public ArrayList<AtividadeDto> getAtividades_secundarias() {
return atividades_secundarias;
}
public void setAtividades_secundarias(ArrayList<AtividadeDto> atividades_secundarias) {
this.atividades_secundarias = atividades_secundarias;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getFantasia() {
return fantasia;
}
public void setFantasia(String fantasia) {
this.fantasia = fantasia;
}
public String getPorte() {
return porte;
}
public void setPorte(String porte) {
this.porte = porte;
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
this.situacao = situacao;
}
public String getData_situacao() {
return data_situacao;
}
public void setData_situacao(String data_situacao) {
this.data_situacao = data_situacao;
}
public String getAbertura() {
return abertura;
}
public void setAbertura(String abertura) {
this.abertura = abertura;
}
public String getCapital_social() {
return capital_social;
}
public void setCapital_social(String capital_social) {
this.capital_social = capital_social;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getMunicipio() {
return municipio;
}
public void setMunicipio(String municipio) {
this.municipio = municipio;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getTxtId() {
return txtId;
}
public void setTxtId(String txtId) {
this.txtId = txtId;
}
public String getTxtDataCadastro() {
return txtDataCadastro;
}
public void setTxtDataCadastro(String txtDataCadastro) {
this.txtDataCadastro = txtDataCadastro;
}
public String getTxtInscricaoEstadual() {
return txtInscricaoEstadual;
}
public void setTxtInscricaoEstadual(String txtInscricaoEstadual) {
this.txtInscricaoEstadual = txtInscricaoEstadual;
}
public String getTxtPesquisar() {
return txtPesquisar;
}
public void setTxtPesquisar(String txtPesquisar) {
this.txtPesquisar = txtPesquisar;
}
public String getTxtResponsalvel() {
return txtResponsalvel;
}
public void setTxtResponsalvel(String txtResponsalvel) {
this.txtResponsalvel = txtResponsalvel;
}
public String getTxtCelular() {
return txtCelular;
}
public void setTxtCelular(String txtCelular) {
this.txtCelular = txtCelular;
}
public Icon getLblStatusCnpj() {
return lblStatusCnpj;
}
public void setLblStatusCnpj(Icon lblStatusCnpj) {
this.lblStatusCnpj = lblStatusCnpj;
}
}
Aqui e a classe que faz a consulta da api no site.
package business;
import com.google.gson.;
import java.io.IOException;
import java.net.;
import java.nio.charset.StandardCharsets;
import javax.swing.JOptionPane;
import model.Empresa;
import model.Endereco;
public class IntegracaoApiBS {
public static Empresa buscarCnpj(String cnpj) throws IOException, Exception {
try {
URL url = new URL("https://www.receitaws.com.br/v1/cnpj/" + cnpj);
HttpURLConnection conexao = (HttpURLConnection) url.openConnection();
conexao.setRequestMethod("GET");
conexao.setDoInput(true);
String convertJsonString = new String(conexao.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
Gson gson = new Gson();
Empresa empresa = gson.fromJson(convertJsonString, Empresa.class);
if (convertJsonString.length() == 53) {
//lblStatusCnpj.setIcon(new javax.swing.ImageIcon("src/image/unconfirm.png"));
//empresa.setLblStatusCep(new javax.swing.ImageIcon("src/image/unconfirm.png"));
JOptionPane.showMessageDialog(null, "CNPJ Inválido não encontrado na base de Dados");
empresa.setCnpj("");
} else {
//lblStatusCnpj.setIcon(new javax.swing.ImageIcon("src/image/confirm.png"));
return empresa;
}
} catch (JsonSyntaxException | IOException msgErro) {
JOptionPane.showMessageDialog(null, "Erro de conexão- status Code " + msgErro.toString());
}
return null;
}
}
Esta classe aqui fiz para tentar extrair o conteudo do array mais parece nao esta funcionando.
package model;
public class AtividadeDto {
private String code;
private String text;
Empresa empresa = new Empresa();
public AtividadeDto() {
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public void atividadeDto() {
for (int i = 0; i < empresa.getAtividade_principal().size(); i++) {
setCode(empresa.getAtividade_principal().toString());
for (int x = i; x < empresa.getAtividade_principal().size(); x++) {
setText(empresa.getAtividade_principal().toString());
}
}
}
}