[RESOLVIDO]Ao acionar o removeAllItems() de um jComboBox o actionPerformad do para de funcionar

4 respostas
V

Caros, bom dia.

Estou com um problema que está me deixando maluco, rs.
O programa roda legal, mas quando eu removo os items de um jComboBox, o método referente a ele para de funcionar.
Alguém poderia me ajudar?

Desde Já agradeço.

Segue abaixo o código.

//Métodos:

      public void AnalistaN1(){
          ContatoBO cbo = new ContatoBO();
          List<Con_Analista> analist = new ArrayList<>();
          analist = cbo.CarregalistaAnalista();
          int max = analist.size();
          int i = 0;
        
              jComboBox2.removeAllItems();
              jComboBox2.addItem("");
              
              while(i < max ){
                if(analist.get(i).getIdPerfil() == 2){ 
                    jComboBox2.addItem(analist.get(i).getNome());
                }
               i++;
              }
    }
      public void AnalistaN2(){
          ContatoBO cbo = new ContatoBO();
          List<Con_Analista> analist = new ArrayList<>();
          analist = cbo.CarregalistaAnalista();
          int max = analist.size();
          int i = 0;
        
              jComboBox2.removeAllItems();
              jComboBox2.addItem("");
              
              while(i < max ){
                if(analist.get(i).getIdPerfil() == 3){ 
                    jComboBox2.addItem(analist.get(i).getNome());
                }
               i++;
              }
    }
      public void Limpar(){
         
                    jComboBox1.removeAllItems();
                    jComboBox2.removeAllItems();
                    txtChamado.setText("");
                    txtDescricao.setText("");
                    txtEmail.setText("");
                    txtFone.setText("");
                    txtLog.setText("");
                    txtMatricula.setText("");
                    txtNomeUser.setText("");
               
      }

//ActionPerformed

    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
     if(jComboBox1.getSelectedItem().equals("Analista N1")){
        AnalistaN1();
     }else if(jComboBox1.getSelectedItem().equals("Analista N2")){
        AnalistaN2();
     }
        
    } 

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
     Limpar();
    } 

/*Lembrando que eu estou carregando o jComboBox1 com os seguintes dasos:

"", Analista N1, Analista N2

*/

4 Respostas

thiago.correa

Esse jComboBox2 não está nulo??! Pode ser que esteja rolando um NullPointerException.

V

Obrigado pela resposta thiago.correa, mas não entendi muito bem o que você quis dizer.

O erro ocorre quando eu limpo o jComboBox1, após remover todos os Items, o ActionPerformed referente ao jComboBox1 para de funcionar:

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                             
     if(jComboBox1.getSelectedItem().equals("Analista N1")){  
        AnalistaN1();  
     }else if(jComboBox1.getSelectedItem().equals("Analista N2")){  
        AnalistaN2();  
     }  
          
    }
marcosharbs

valdeir300:
Obrigado pela resposta thiago.correa, mas não entendi muito bem o que você quis dizer.

O erro ocorre quando eu limpo o jComboBox1, após remover todos os Items, o ActionPerformed referente ao jComboBox1 para de funcionar:

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                             
     if(jComboBox1.getSelectedItem().equals("Analista N1")){  
        AnalistaN1();  
     }else if(jComboBox1.getSelectedItem().equals("Analista N2")){  
        AnalistaN2();  
     }  
          
    }

Esse seu código acima pode estourar um NullPointerException,
talvez isso que esteja dando porque vc excluir todos os itens e depois da um
jComboBox1.getSelectedItem(), tenta fazer a validação deste jeito abaixo:

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                             
     if("Analista N1".equals(jComboBox1.getSelectedItem())){  
        AnalistaN1();  
     }else if("Analista N2".equals(jComboBox1.getSelectedItem())){  
        AnalistaN2();  
     }  
          
    }
V

marcosharbs, muito obrigado, deu certo.

:stuck_out_tongue: :stuck_out_tongue:

Criado 19 de novembro de 2012
Ultima resposta 19 de nov. de 2012
Respostas 4
Participantes 3