Como chamar método para dentro do If e Else?

2 respostas
Igor_Contini

Estou desenvolvendo um software para uma videolocadora com design pattern MVC (Model-view-controller) e está ocorrendo o problema de não chamar o método salvar() dentro do If e Else pois se eu não chamar o método salvar dentro não consigo salvar e nem alterar os dados da minha pessoa. Já tentei varias formas e não consegui encontra a solução..e alguém aí poderia me ajudar ? Desde já, agradeço !

Classe VideoPessoa, da camada view:

package view;

//  A maioria das importaçoes fica "importação não utilizada"

import controller.PessoaController;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import model.Pessoa;
import util.Conexao;
import util.OPDatas;

/**
 *
 * @author Aluno3
 */
public class VideoPessoa extends javax.swing.JFrame {
    
    
    PessoaController pessoaController;
    Pessoa pessoa;
    String tipoCadastro;
   
    
    


    /**
     * Creates new form Pessoa
     */
    public VideoPessoa() {
        initComponents();
        
        new Conexao();
        pessoaController = new PessoaController();
        pessoa = new Pessoa();
        this.carregarPessoas();// Aqui da erro
         this.novaPessoa();// Aqui da erro
        this.habilitarCampos();// Aqui da erro
       
        
    }

Botão de salvar e o botão de alterar, dentro da camada view:

private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
       
        if (tipoCadastro.equals("novo")){
            salvarCliente();// Aqui  erro!
            
        } else if(tipoCadastro.equals("alteracao")){
            
            alteraCliente(); // Aqui da erro também!
        }
    }      
       
       
    }                                         

    private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        novaPessoa();
        habilitarCampos();
        recuperarPessoas();
        tipoCadastro = "alteracao";
    }

Metódo alterar e salvar, dentro da camada view:

private boolean salvarPessoa() {

        pessoa.setNome(txtNome.getText());
        pessoa.setEndereco(txtEndereco.getText());
        pessoa.setBairro(txtBairro.getText());
        pessoa.setCPF(txtCPF.getText());
        pessoa.setSexo(txtSexo.getText());
        pessoa.setUf(txtUF.getText());
        pessoa.setCelular(txtCelular.getText());
        pessoa.setTelefone(txtTelefone.getText());
        pessoa.setCidade(txtCidade.getText());
        
        Integer codigo = pessoa.getCodigo();
         String nome = pessoa.getNome();
JOptionPane.showMessageDialog(this, "Código:"+codigo+ "nome:"+nome);
       
        if (pessoaController.salvar(pessoa)) {

            JOptionPane.showMessageDialog(this, "Registro gravado com sucesso!");
            this.desabilitarCampos();
            this.carregarPessoas();
            return true;
            
        } else {
            JOptionPane.showMessageDialog(this, "Erro ao gravar os dados!", "ERRO", JOptionPane.ERROR_MESSAGE);
             return false;
        }
    }

    public boolean alterarPessoa() {
        pessoa.setCodigo( Integer.parseInt(this.txtCodigo.getText()));
        pessoa.setNome(this.txtNome.getText());
        pessoa.setEndereco(this.txtEndereco.getText());
        pessoa.setBairro(this.txtBairro.getText());
        pessoa.setCPF(this.txtCPF.getText());
        pessoa.setSexo(this.txtSexo.getText());
        pessoa.setUf(this.txtUF.getText());
        pessoa.setCelular(this.txtCelular.getText());
        pessoa.setTelefone(this.txtTelefone.getText());
        pessoa.setCidade(this.txtCidade.getText());
        
          Integer codigo = pessoa.getCodigo();
         String nome = pessoa.getNome();
JOptionPane.showMessageDialog(this, "Código:"+codigo+ "nome:"+nome);

        if (pessoaController.alterar(pessoa)) {

            JOptionPane.showMessageDialog(this, "Registro alterado com sucesso!");
             this.desabilitarCampos();
            this.carregarPessoas();
            return true;
        } else {
            JOptionPane.showMessageDialog(this, "Erro ao alterar os dados!", "ERRO", JOptionPane.ERROR_MESSAGE);
          return false;
        }

        

    }


 private void habilitarCampos() {
        txtNome.setEditable(true);
        txtEndereco.setEditable(true);
        txtBairro.setEditable(true);
        txtCidade.setEditable(true);
        txtCPF.setEditable(true);
        txtUF.setEditable(true);
        txtTelefone.setEditable(true);
        txtCelular.setEditable(true);
        txtSexo.setEditable(true);
        btnSalvar.setEnabled(true);
    }
    
    private void novaPessoa(){
        habilitarCampos();
        
        txtCodigo.setText("Novo");
        txtNome.setText("");
        txtEndereco.setText("");
        txtBairro.setText("");
        txtCidade.setText("");
        txtCPF.setText("");
        txtUF.setText("");
        txtTelefone.setText("");
        txtCelular.setText("");
        txtSexo.setText("");
        tipoCadastro = "novo";
    }


 protected void desabilitarCampos() {
        txtNome.setEditable(false);
        txtEndereco.setEditable(false);
        txtBairro.setEditable(false);
        txtCidade.setEditable(false);
        txtCPF.setEditable(false);
        txtUF.setEditable(false);
        txtTelefone.setEditable(false);
        txtCelular.setEditable(false);
        txtSexo.setEditable(false);
        btnSalvar.setEnabled(false);
    }
    
  private void carregarPessoas() {
        DefaultTableModel tabela = (DefaultTableModel) tblPessoa.getModel();
        tabela.setNumRows(0);

        List<Pessoa> pessoas = pessoaController.listar();
        Pessoa pessoa = null;

        for (int i = 0; i < pessoas.size(); i++) {
            pessoa = pessoas.get(i);

            tabela.addRow(new Object[]{0});

            tabela.setValueAt(pessoa.getCodigo(), i, 0);
            tabela.setValueAt(pessoa.getCPF(), i, 1);
            tabela.setValueAt(pessoa.getNome(), i, 2);
            tabela.setValueAt(pessoa.getCidade(), i, 3);
            tabela.setValueAt(pessoa.getTelefone(), i, 4);

        }
        tblPessoa.setModel(tabela);
    }

2 Respostas

carloshsamaral

Acho que teu erro dentro do carrega pessoas é que você tá iniciando o objeto pessoa como nulo e depois não cria uma nova pessoa …

Tenta instanciar ele

//seu código
Pessoa pessoa = null; 
for (int i = 0; i < pessoas.size(); i++) {  
pessoa = pessoas.get(i);  

...
}
Igor_Contini

Tentei e não deu certo! Consegui achar o erro de alterar os dados do meu projeto?

Criado 4 de novembro de 2015
Ultima resposta 30 de nov. de 2015
Respostas 2
Participantes 2