JComboBox - Atribuição

3 respostas
A

Gostaria de atribuir um item selecionado a uma variavel no meu JComboBox:
Os valores que tenho é:

Itau - Visa
Carrefour
MasterCard

Quando seleciona e mando para o banco de dados independente de qualquer item selecionado vai sempre o primeiro item no caso: Itau - Visa

private void btrCartaoActionPerformed(java.awt.event.ActionEvent evt) {

        if(evt.getSource()==btrCartao){
         formadepagamento = (String) cbxCartao.getSelectedItem(); // esta é a linha
         setBotoesR(true,false,false,false);
         setCampos(false,true,true,true,true,false,true);
        }
    }

3 Respostas

D

Copiei isso de um outro site (JavaFree) que me ajudou quando tive uma dúvida parecida.

Tente dessa forma.

import java.awt.BorderLayout;  
    import java.awt.event.MouseAdapter;  
    import java.awt.event.MouseEvent;  
    import java.util.ArrayList;  
      
    import javax.swing.DefaultListModel;  
    import javax.swing.JFrame;  
    import javax.swing.JList;  
    import javax.swing.JOptionPane;  
    import javax.swing.JScrollPane;  
      
      
    public class Listas extends JFrame {  
       private static final long serialVersionUID = -7505493186670281044L;  
      
       private JList list = null;  
       private DefaultListModel listModel = null;  
         
       public Listas() {  
          super();  
          initialize();  
       }  
         
       private void initialize() {  
          listModel = new DefaultListModel();  
          list = new JList(listModel);  
          list.addMouseListener(new MouseAdapter() {  
             @Override  
             public void mouseClicked(MouseEvent e) {  
                pegaIdNaLista();  
             }  
          });  
      
          preencheList();  
            
          add(new JScrollPane(list), BorderLayout.CENTER);  
      
          setSize(800, 600);  
          setDefaultCloseOperation(EXIT_ON_CLOSE);  
          setVisible(true);  
       }  
         
       private void preencheList() {  
            
          for (MinhaClasse classe : new Controle().getMinhaClasseDeTO()) {  
             listModel.addElement(classe);  
          }  
       }  
         
       private void pegaIdNaLista() {  
          MinhaClasse classe = (MinhaClasse) listModel.get(list.getSelectedIndex());  
            
          JOptionPane.showMessageDialog(this, String.format("ID: %02d - NOME: %s", classe.getId(), classe.getNome()),   
                "TESTE COM LISTA", JOptionPane.INFORMATION_MESSAGE);  
       }  
      
       // ============================================================================================== //  
         
       // Classe de controle ou BI.  
       private class Controle {  
            
          public ArrayList<MinhaClasse> getMinhaClasseDeTO() {  
             ArrayList<MinhaClasse> lista = new ArrayList<MinhaClasse>();  
               
             MinhaClasse classe1 = new MinhaClasse();  
             classe1.setId(1);  
             classe1.setNome("Fulano");  
               
             MinhaClasse classe2 = new MinhaClasse();  
             classe2.setId(1);  
             classe2.setNome("Bertano");  
               
             lista.add(classe1);  
             lista.add(classe2);  
               
             return lista;  
          }  
       }  
         
       // ============================================================================================== //  
         
       // Classe com os getters and setters, ou seja, TO  
       private class MinhaClasse {  
            
          private int id;  
          private String nome;  
            
          @Override  
          public String toString() {  
             return nome;  
          }  
      
          public int getId() {  
             return id;  
          }  
      
          public void setId(int id) {  
             this.id = id;  
          }  
      
          public String getNome() {  
             return nome;  
          }  
      
          public void setNome(String nome) {  
             this.nome = nome;  
          }  
       }  
         
       // Método principal  
       public static void main(String[] args) {  
          new Listas();  
       }  
    }
A

Eu só quero saber se tem algum erro e por que nao esta adicionando a string certa

julianolandim

Boa tarde, nessa parte do seu codigo que vc postou nao tem nenhum erro, eu creio que o erro esteja em outro lugar em sua classe, mas tente testar o codigo abaixo, verifique se ele irar imprimir corretamente como vc quer.
Se o codigo abaixo imprimir corretamente é porque problema esta em outro lugar na sua classe, ai vc posta ela inteira para analisarmos.

private void btrCartaoActionPerformed(java.awt.event.ActionEvent evt) {
      String formadepagamento = null ; 
      if(evt.getSource().equals(btrCartao)){  
        formadepagamento = (String) cbxCartao.getSelectedItem(); // esta é a linha  
      }        
      System.out.println(formadepagamento);
       
    }

Uma dica que deixo aqui é usar sempre equals para comparar um object ou string.

Criado 19 de fevereiro de 2012
Ultima resposta 20 de fev. de 2012
Respostas 3
Participantes 3