How to call a method into an If and Else?

1

I'm developing software for an MVC (Model-view-controller) design video store and the problem is not calling the save () method and the change () method inside the If and Else on the Save button. If the typocadastro variable is "new" it saves and if the typocadastro variable is "change" it changes. I tried several ways and I could not find the solution ... and could anyone help me? Thank you very much in advance!

Class VideoPessoa, from the view layer:

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();// Fica sublinhado em vermelho indicando erro!
         this.novaPessoa();// Fica sublinhado em vermelho indicando erro!
        this.habilitarCampos();// Fica sublinhado em vermelho indicando erro!   
    }

Save button and change button, within the view layer:

       private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                          
                    // TODO add your handling code here:

                    if (tipoCadastro.equals("novo")){
                        salvarPessoa();// Fica sublinhado vermelho indicando erro!

                    } else if(tipoCadastro.equals("alteracao")){

                        alteraPessoa(); // Fica sublinhado vermelho indicando erro!
                  }
            }  
        }                                         

     private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                           
                    // TODO add your handling code here:
                    novaPessoa();
                    habilitarCampos();
                    recuperarPessoas();
                    tipoCadastro = "alteracao";
                }  
         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";
            }  


 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());

// Aqui executo um teste se altera e quando exibe esse teste os dados não ficam alteradose e sempre exibe a mensagem alterados com sucesso!

          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;
        }



    }               
    
asked by anonymous 05.11.2015 / 20:23

2 answers

1
if (salvarPessoa()){
 // faça alguma coisa
}

if (alterarPessoa()){
 // faça alguma coisa
}

I did not quite understand your question, but would it?

    
05.11.2015 / 20:27
1

Well, a priori I see that every time you press the Change Person button, you first call novaPessoa() , which in this case clears all fields and does not change its object. So do not call him before you change the person.

Another detail that in this case is better to use a Boolean, which takes up less memory than a String and there are no comparison problems (a String in upperCase is different from a String in lowerCase).

Getting something like this:

public class BlaBlaBla { 
    boolean alterarPessoa = false;

  private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                           
     habilitarCampos();
     recuperarPessoas();
     alterarPessoa = 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("");
   alterarPessoa = false;
 } 

  private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
          if (!alterarPessoa){
              salvarPessoa();
          } else {
              alteraPessoa();
          }
    }
}
    
16.11.2015 / 15:00