Codificar Botão Editar

Sou novo em Java, estou treinando fazendo um simples cadastro e estou com a seguinte situação.

Tenho um formulário Buscar, neste formulário tenho os botões: Novo (Funcionando), ***Editar (Esta situação)***, Excluir (Funcionando) e Pesquisar (Ainda não codificado).

Ao selecionar um cliente no formulário e clicar no botão editar, aparece a mensagem de Erro: “Erro ao selecionar Cliente! Null”.

Não consigo resolver.

private void jBtnEditarActionPerformed(java.awt.event.ActionEvent evt) {
  if(jTblCliente.getSelectedRow() == -1){
    JOptionPane.showMessageDialog(null, "Cliente deverá ser selecionado!");
  } else {
    try{
      ClienteInformation c = new ClienteInformation();
      ClienteDao clidao = new ClienteDao();

      c.setCodigo((int)jTblCliente.getValueAt(jTblCliente.getSelectedRow(), 0));

      JInFrmCadCliente ccli;
      form.abrirForm(ccli = new JInFrmCadCliente(), FrmPrincipal.jDtpPrincipal);
      
      dispose();
    } catch(Exception ex){
      JOptionPane.showMessageDialog(null,"Erro ao selecionar Cliente! " + ex.getMessage());
    }
  }
}

Tabela - jTblCliente;
Formulário - JinFrmCadCliente;

Ambiente: Java, Netbeans, Mysql, Workbench
SO: Windows 10

Bem-vindo ao fórum.

Tem alguma razão específica pra fazer catch de Exception?
Faça de uma exceção mais específica. SQLException por exemplo.

E coloque pra imprimir o stacktrace do erro pra saber o que está causando.

1 curtida

Este código que postei é referente a Janela de Busca e não tem comando SQL. O SQLException estou usando na classe que faz acesso ao Banco, ClienteDAO.

Para melhor entendimento da minha estrutura:
Tenho Janela Principal, chamo a janela de Buscar Cliente.
Em Buscar Cliente Tenho, jTable e os Botões citados.
Além do pacote de Interface, tenho DAO, BLL e MODEL.

Vou verificar como funciona o stacktrace e inserir no meu código. Se tiver um exemplo para me enviar.

Agradeço.

Qual exceção vc está tratando com aquele try catch?

O stacktrace seria ex.printStackTrace() ou ex.getStackTrace() se for exibir na janela.

Estou tratando o ClienteInformation c = new ClienteInformation();

Já peguei exemplos, modifiquei este trecho.

Obrigado pelo Bem-Vindo e pela força. Quero poder entender java. rsrs

Isso joga uma exceção?
Qual?

A linha “ClienteInformation c = new ClienteInformation();” pega informação na classe ClienteInformation.java no pacote model, onde tenho o get e set.

Pelo que entendi, não consigo trabalhar com dados de uma classe sem ser por try catch e por isto desta estrutura, ou seja, ao usar dados de uma classe devo usar esta estrutura pois pode haver erro na execução e com isto consigo identificar a sua localidade para pode tratar.

Peço que me corrija, se eu estiver errado.

No caso a exceção que você questiona, seria em que sentido?

Só por acessar dados de outra classe em si, não precisa de try catch.

Você é obrigado a rodear com try catch quando o método joga uma Checked Exception (SQLException, IOException, etc).
Em alguns casos é interessante tbm em Unchecked Exceptions como quando está fazendo parse de um número ou data e o valor é inválido.

Ainda estou pesquisando uma forma de resolver. Vou está fechando o tópico. Obrigado.