Problemas na execução de métodos que possuem If e Else

11 respostas
viniciusgundim

Boa tarde pessoal, criei na minha aplicação os seguintes metodos:

//****VERIFICA CAMPOS OBRIGATORIOS****//
    public void verifica_campos_dados_pessoais(){ 
       if (cdv_jtf_dados_pessoais_nome.getText().equals("")){          
           JOptionPane.showMessageDialog(null, "O Campo NOME, na guia DADOS PESSOAIS precisa ser preenchido.");
           cdv_jb_salvar.setEnabled(false);
           cdv_jtf_dados_pessoais_nome.requestFocus();
         }
       else if (cdv_jtf_dados_pessoais_registro.getText().equals("")){
       JOptionPane.showMessageDialog(null, "O Campo REGISTRO, na guia DADOS PESSOAIS precisa ser preenchido.");
       cdv_jb_salvar.setEnabled(false);
       cdv_jtf_dados_pessoais_registro.requestFocus();
       }
       else if (cdv_jtf_dados_pessoais_rg.getText().equals("")){
       JOptionPane.showMessageDialog(null, "O Campo RG, na guia DADOS PESSOAIS precisa ser preenchido.");
       cdv_jb_salvar.setEnabled(false);
       cdv_jtf_dados_pessoais_rg.requestFocus();
       }
       else if (cdv_jftf_dados_pessoais_cpf.getText().equals("   .   .   -  ")){
       JOptionPane.showMessageDialog(null, "O Campo CPF, na guia DADOS PESSOAIS precisa ser preenchido.");
       cdv_jb_salvar.setEnabled(false);
       cdv_jftf_dados_pessoais_cpf.requestFocus();
       }
        else if (cdv_jtf_dados_pessoais_empresa.getText().equals("")){
       JOptionPane.showMessageDialog(null, "O Campo EMPRESA, na guia DADOS PESSOAIS precisa ser preenchido.");
      cdv_jb_salvar.setEnabled(false);
      cdv_jtf_dados_pessoais_empresa.requestFocus();
        } 
        else if (cdv_jtf_dados_pessoais_area.getText().equals("")){
       JOptionPane.showMessageDialog(null, "O Campo ÁREA, na guia DADOS PESSOAIS precisa ser preenchido.");
       cdv_jb_salvar.setEnabled(false);
       cdv_jtf_dados_pessoais_area.requestFocus();
        }       
        else if (cdv_jtf_dados_pessoais_fone.getText().equals("")){
       JOptionPane.showMessageDialog(null, "O Campo TELEFONE, na guia DADOS PESSOAIS precisa ser preenchido.");
       cdv_jb_salvar.setEnabled(false);
       cdv_jtf_dados_pessoais_fone.requestFocus();
        }        
        else{
        cdv_jb_salvar.setEnabled(true);
        }
}
    
    //****VERIFICA CAMPOS DO TAXI, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
    public void verifica_campos_taxi(){
         if (!cdv_jftf_taxi_hora.getText().equals("  :  ") && !cdv_jtf_taxi_cidade_origem.getText().equals("") && !cdv_jtf_taxi_cidade_destino.getText().equals("")
         && !cdv_jtf_taxi_end_origem.getText().equals("") && !cdv_jtf_taxi_end_destino.getText().equals("") && !cdv_jcb_taxi_data.getDate().equals("")){ 
         cdv_jb_salvar.setEnabled(true);
        }
        else if (!cdv_jftf_taxi_hora.getText().equals("  :  ") || !cdv_jtf_taxi_cidade_origem.getText().equals("") || !cdv_jtf_taxi_cidade_destino.getText().equals("")
        || !cdv_jtf_taxi_end_origem.getText().equals("") || !cdv_jtf_taxi_end_destino.getText().equals("") || !cdv_jcb_taxi_data.getDate().equals("")){
        JOptionPane.showMessageDialog(null, "A Guia TAXI, precisa ser terminada.");
         jLabel99.setVisible(true);
         jLabel100.setVisible(true);
         jLabel101.setVisible(true);
         jLabel103.setVisible(true);
         jLabel102.setVisible(true);
         jLabel104.setVisible(true);
        cdv_jb_salvar.setEnabled(false);
        
        }
        }
    
    
    //****VERIFICA CAMPOS DO TAXI RETORNO, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
    public void verifica_campos_taxi_retorno(){
    if(!cdv_jftf_taxi_retorno_hora.getText().equals("  :  ") && !cdv_jtf_taxi_retorno_cidade_origem.getText().equals("") && !cdv_jtf_taxi_retorno_cidade_destino.getText().equals("") 
    && !cdv_jtf_taxi_retorno_end_origem.getText().equals("") && !cdv_jtf_taxi_retorno_end_destino.getText().equals("") && !cdv_jcb_taxi_retorno_data.getDate().equals("")){
     cdv_jb_salvar.setEnabled(true);
    } 
    else if (!cdv_jftf_taxi_retorno_hora.getText().equals("  :  ") || !cdv_jtf_taxi_retorno_cidade_origem.getText().equals("") || !cdv_jtf_taxi_retorno_cidade_destino.getText().equals("") || 
    !cdv_jtf_taxi_retorno_end_origem.getText().equals("") || !cdv_jtf_taxi_retorno_end_destino.getText().equals("") || !cdv_jcb_taxi_retorno_data.getDate().equals("")){
    JOptionPane.showMessageDialog(null, "A Guia TAXI RETORNO, precisa ser terminada.");
    jLabel105.setVisible(true);
    jLabel106.setVisible(true);
    jLabel107.setVisible(true);
    jLabel109.setVisible(true);
    jLabel108.setVisible(true);
    jLabel110.setVisible(true);
    cdv_jb_salvar.setEnabled(false);
    }
    }
    
    
    //****VERIFICA CAMPOS DO HOSPEDAGEM, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
    public void verifica_campos_hospedagem(){
    if(!cdv_jtf_hospedagem_endereco.getText().equals("") && 
       !cdv_jcb_hospedagem_check_in.getDate().equals("") && !cdv_jcb_hospedagem_check_out.getDate().equals("")){
       cdv_jb_salvar.setEnabled(true); 
    }
    else if (!cdv_jtf_hospedagem_endereco.getText().equals("") || !cdv_jtf_hospedagem_outras_obs.getText().equals("") ||
        !cdv_jta_hospedagem_obs.getText().equals("") || !cdv_jtf_hospedagem_outras_obs.getText().equals("") || !cdv_jcb_hospedagem_check_in.getDate().equals("") || !cdv_jcb_hospedagem_check_out.getDate().equals("")){
        JOptionPane.showMessageDialog(null, "A Guia HOSPEDAGEM, precisa ser terminada.");
        jLabel111.setVisible(true);
         jLabel112.setVisible(true);
         jLabel113.setVisible(true);
         jLabel114.setVisible(true);
         jLabel115.setVisible(true);
         cdv_jb_salvar.setEnabled(false);
    }
    
    }
    
    
    //****VERIFICA CAMPOS DO VÔO, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
    public void verifica_campos_voo(){
    if(!jtf_cdv_voo_origem.getText().equals("") && !jtf_cdv_voo_destino.getText().equals("") &&
            !jftf_cdv_voo_previsao_horario.getText().equals("  :  ") && !cdv_jcb_voo_data.getDate().equals("")){
    cdv_jb_salvar.setEnabled(true);
    }
    else if(!jtf_cdv_voo_origem.getText().equals("") || !jtf_cdv_voo_destino.getText().equals("") ||
            !jftf_cdv_voo_previsao_horario.getText().equals("  :  ") || !cdv_jcb_voo_data.getDate().equals("")){
        JOptionPane.showMessageDialog(null, "A Guia VÔO, precisa ser terminada.");
        jLabel116.setVisible(true);
         jLabel117.setVisible(true);
         jLabel118.setVisible(true);
         jLabel119.setVisible(true);
        cdv_jb_salvar.setEnabled(false);
    
    }
    }
    
    
   //****VERIFICA CAMPOS DO VÔO RETORNO, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
   public void verifica_campos_voo_retorno(){
       if(!jtf_cdv_voo_retorno_origem.getText().equals("") && !jtf_cdv_voo_retorno_destino.getText().equals("") &&
       !jftf_cdv_voo_retorno_previsao_horario.getText().equals("  :  ") && !cdv_jcb_voo_retorno_data.getDate().equals("")){
    cdv_jb_salvar.setEnabled(true);
    }
    else if(!jtf_cdv_voo_retorno_origem.getText().equals("") || !jtf_cdv_voo_retorno_destino.getText().equals("") ||
            !jftf_cdv_voo_retorno_previsao_horario.getText().equals("  :  ") || !cdv_jcb_voo_retorno_data.getDate().equals("")){
        JOptionPane.showMessageDialog(null, "A Guia VÔO>RETORNO, precisa ser terminada.");
         jLabel120.setVisible(false);
         jLabel121.setVisible(false);
         jLabel122.setVisible(false);
         jLabel123.setVisible(false);
        cdv_jb_salvar.setEnabled(false);
   }
}
   //****VERIFICA CAMPOS DA LOCAÇÃO DE VEICULO, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
   public void verifica_campos_loc_veiculo(){
   if(!cdv_jtf_loca_veiculo_end.getText().equals("") && !cdv_jtf_loca_veiculo_cidade.getText().equals("") && !cdv_jtf_loca_veiculo_end1.getText().equals("")
     && !cdv_jtf_loca_veiculo_cidade1.getText().equals("") &&  !cdv_jcb_loc_veiculo_chech_in.getDate().equals("") && !cdv_jcb_loc_veiculo_chech_out.getDate().equals("")){
     cdv_jb_salvar.setVisible(true);
   }
   else if (!cdv_jtf_loca_veiculo_end.getText().equals("") || !cdv_jtf_loca_veiculo_cidade.getText().equals("") || !cdv_jtf_loca_veiculo_end1.getText().equals("")
     || !cdv_jtf_loca_veiculo_cidade1.getText().equals("") ||  !cdv_jcb_loc_veiculo_chech_in.getDate().equals("") || !cdv_jcb_loc_veiculo_chech_out.getDate().equals("")){
    JOptionPane.showMessageDialog(null, "A Guia LOCAÇÃO DE VEICULO, precisa ser terminada.");
         jLabel124.setVisible(true);
         jLabel125.setVisible(true);
         jLabel126.setVisible(true);
         jLabel127.setVisible(true);
         jLabel128.setVisible(true);
         jLabel129.setVisible(true);
         cdv_jb_salvar.setEnabled(false);
   }
   }
      //****VERIFICA CAMPOS DE ADIANTAMENTO DE VIAGEM, SE UM DOS CAMPOS ESTIVER PREENCHIDO AUTOMATICAMENTE TODOS FICAM VÁLIDOS, A INTERROGAÇÃO NA FRENTE DA VARIAVEL DIZ QUE ELA VAI DIFERENTE DO EQUALS QUE E VAZIO****//
      public void verifica_campos_adiantamento_viagem(){
      if (!cdv_jtf_adiantamento_viagem_parte_nacional.getText().equals("R$") && !jTextField2.getText().equals("$") &&
          !cdv_jtf_adiant_viagem_conta.getText().equals("") && !cdv_jtf_adiant_viagem_agencia.getText().equals("") && !cdv_jtf_adiant_viagem_banco.getText().equals("")){
      cdv_jb_salvar.setEnabled(true);
      }
      else if (!cdv_jtf_adiantamento_viagem_parte_nacional.getText().equals("R$") || !jTextField2.getText().equals("$") ||
          !cdv_jtf_adiant_viagem_conta.getText().equals("") || !cdv_jtf_adiant_viagem_agencia.getText().equals("") || !cdv_jtf_adiant_viagem_banco.getText().equals("")){
         JOptionPane.showMessageDialog(null, "A Guia ADIANTAMENTO DE VIAGEM, precisa ser terminada.");
         jLabel130.setVisible(true);
         jLabel131.setVisible(true);
         jLabel132.setVisible(true);
         jLabel133.setVisible(true);
         jLabel134.setVisible(true);
         cdv_jb_salvar.setEnabled(false);
      }
ai depois chamo eles através de uma ação de clique de mouse:
private void cdv_jtp_principalMouseClicked(java.awt.event.MouseEvent evt) {                                               
// TODO add your handling code here:
    verifica_campos_dados_pessoais();
    verifica_campos_taxi();
    verifica_campos_taxi_retorno();
    verifica_campos_hospedagem();
    verifica_campos_voo();
    verifica_campos_voo_retorno();
    verifica_campos_loc_veiculo();
    verifica_campos_adiantamento_viagem();

mais é o seguinte ele só executa os dois primeiros metodos, o que pode ser? Será que é muita condição nos metodos, por mim era pra funcionar....

O que pode ser??

Desde já agradeço..

11 Respostas

thiago.correa

Dá uma olhada e veja se não está estourando algum tipo de erro!

BrunoBastosPJ

Esse código ai está absurdamente confuso…
Para te ajudar a debugar coloque os valores das condições em variáveis booleanas, assim você sabe qual o valor testado.

Faça algo como:

boolean condition1 = !cdv_jftf_taxi_retorno_hora.getText().equals("  :  ");
  System.out.println("Método X Condição 1: " + condition1;
  boolean condition2 = !cdv_jftf_taxi_retorno_hora.getText().equals("  :  ");
  System.out.println("Método X Condição 1: " + condition2;
  ...
  if(condition1 && condition2 ... ) {
   ...
  }
viniciusgundim

Está dando erro sim, e nem tinha percebido o que pode ser???

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at cdv.Tela_Principal_Cliente.verifica_campos_taxi(Tela_Principal_Cliente.java:2392) at cdv.Tela_Principal_Cliente.cdv_jtp_principalMouseClicked(Tela_Principal_Cliente.java:1911) at cdv.Tela_Principal_Cliente.access$000(Tela_Principal_Cliente.java:22) at cdv.Tela_Principal_Cliente$1.mouseClicked(Tela_Principal_Cliente.java:430) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252) at java.awt.Component.processMouseEvent(Component.java:6137) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5899) at java.awt.Container.processEvent(Container.java:2023) at java.awt.Component.dispatchEventImpl(Component.java:4501) at java.awt.Container.dispatchEventImpl(Container.java:2081) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3974) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895) at java.awt.Container.dispatchEventImpl(Container.java:2067) at java.awt.Window.dispatchEventImpl(Window.java:2458) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Fiz o teste com o bollean BrunoBastosPJ, em vez do println fiz um JoptionPane, retornou o seguinte:
Metodo X Condição 1:false

BrunoBastosPJ

Cole o código que aparece nesta linha: Tela_Principal_Cliente.java:2392

viniciusgundim
2392 else if (!cdv_jftf_taxi_hora.getText().equals("  :  ") || !cdv_jtf_taxi_cidade_origem.getText().equals("") || !cdv_jtf_taxi_cidade_destino.getText().equals("")
        2393 || !cdv_jtf_taxi_end_origem.getText().equals("") || !cdv_jtf_taxi_end_destino.getText().equals("") || !cdv_jcb_taxi_data.getDate().equals("")){
        2394 JOptionPane.showMessageDialog(null, "A Guia TAXI, precisa ser terminada.");
        2395  jLabel99.setVisible(true);
         2396 jLabel100.setVisible(true);
         2397 jLabel101.setVisible(true);
         2398 jLabel103.setVisible(true);
         2399 jLabel102.setVisible(true);
         2400 jLabel104.setVisible(true);
        2401 cdv_jb_salvar.setEnabled(false);
        
        }
        }

Está aiii o codigo da linha 2392, help...

Felagund

Cara na boa, teu codigo ta horrivel, seguinte olhando meio por cima assim, sem conhecer o restante posso dizer q o erro deve ser nessa condição no meio desse if

!cdv_jcb_taxi_data.getDate().equals("")

esse metodo getDate() pode retornar null? acredito q esse seja seu problema.

S

EU nem consegui olhar e analisar o codigo é muita confusão junta, vou analisar em casa com mais calma

S

Se possivel cria uma classe validar, e depois cria os metodos que vão validando uma coisa a uma, ex( metodo que valida se o campo esta vazio, metodo que valida se a data é invalida e etc)

viniciusgundim

Felagund, é quase certeza que está nesse getDate, mais é o seguinte estou usando o combox da swing-x para data, não sei se vc conhece, o get date foi o unico que está pegando os valores do combobox, tentei usar o getText mais não funciona com esse combo, será qual posso usar…??? O combo se chama Jxdatepicker, o codigo tá meio bagunçado sim, mais é pq tenho que tratar muitos campos então fio um if e else danadoo aiii rsrs

T++

BrunoBastosPJ

Faça seus teste assim:

"".equals(...);

Isso vai evitar seus NullPointerExceptions.

Marky.Vasconcelos

O loco cara… que código macarronico…

anyway…

Faça uns try/caths ai… as vezes no meio de uma Action a Exception é engolida e voce nem sabe o que aconteceu.

Criado 8 de março de 2010
Ultima resposta 12 de mar. de 2010
Respostas 11
Participantes 6