Devo mesmo usar ActionPerformed no meu JComboBox?

5 respostas
B

Boa noite!!! sou iniciante em java e to com uma duvida bem boba! quando eu abro meu formulario, os codigos que estao dentro do meu ActionPerformed eh lido sem eu dar acao ao botao? pq eu abro minha tela e nessa tela tem o meu JComboBox que retorna uma JOptionPane e nao dei acao nenhuma no botao e quando carrego a tela ele carrega a JOptionPane! tentei colocar o JOptionPane no ActionPerformed e no ItemStateChanged mas nos 2 quando inicio meu formulario ele inicia trazendo o JOptionPane, e nao apenas quando clico no combobox!!! HELP_ME_PLZ!!

private void jcb_retornoActionPerformed(java.awt.event.ActionEvent evt) {                                            
      JOptionPane.showMessageDialog(this,"Retorno");
}                                           

private void jcb_retornoItemStateChanged(java.awt.event.ItemEvent evt) {
      JOptionPane.showMessageDialog(this,"Retorno");        
}

THANKS FOR ALL

5 Respostas

B

UP

R

Quando você adiciona um item a um JComboBox via addItem(), se a JComboBox estava vazia o item adicionado passará a ser o item selecionado, e portanto será disparado um evento ActionPerformed. Para evitar o disparo do evento, pode-se usar uma outra forma de preencher a JComboBox: adicione os itens a um DefaultComboBoxModel e então passe esse DefaultComboBoxModel à JComboBox através de JComboBox.setModel().

B

Entendi

roger
e comecei a implementar da maneira que falou veja consegui setar o modelo do meu banco! e esta aparecendo na combobox

porem no actionperformed no meu combobox coloquei isso

Object retorno = jcb_retorno.getSelectedItem();
        if (retorno != null) {
            System.out.println("retorno = "+retorno);
            if (retorno.equals("V")) {
                   System.out.println("Forum GUJ");
            }
        }

ai quando clico no combobox e seleciono “V” ele me retorna => retorno = V certinhu mas quando eh pra ele entra no if e retornar Forum GUJ ele n retorna! pq sera? to fazendo alguma coisa errada? ta faltando alguma cast? sou uma pobre iniciante se alguem poder me ajudar fico agradecida obrigado!

B

tentei colocar assim

mas gerou a seguinte stack

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: br.com.estudo.bean.ReturnBean cannot be cast to java.lang.String
R

Como você adicionou à JComboBox objetos do tipo ReturnBean, deve também usar esse tipo ao ler o objeto selecionado. Creio que seu código deve ficar assim (estou supondo que o valor “V” seja retornado por um método getDescricao() do tipo ReturnBean, deixo para você fazer a adaptação necessária):

ReturnBean retorno = (ReturnBean) jcb_retorno.getSelectedItem();  

if (retorno != null) {  
  System.out.println("retorno = "+ retorno);  
  if ("V".equals(retorno.getDescricao())) {  
    System.out.println("Forum GUJ");  
  }  
}
Criado 10 de setembro de 2009
Ultima resposta 11 de set. de 2009
Respostas 5
Participantes 2