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
privatevoidbtrCartaoActionPerformed(java.awt.event.ActionEventevt){
if(evt.getSource()==btrCartao){
formadepagamento=(String)cbxCartao.getSelectedItem(); // esta é a linhasetBotoesR(true,false,false,false);setCampos(false,true,true,true,true,false,true);}
}
Copiei isso de um outro site (JavaFree) que me ajudou quando tive uma dúvida parecida.
Tente dessa forma.
importjava.awt.BorderLayout;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.util.ArrayList;importjavax.swing.DefaultListModel;importjavax.swing.JFrame;importjavax.swing.JList;importjavax.swing.JOptionPane;importjavax.swing.JScrollPane;publicclassListasextendsJFrame{privatestaticfinallongserialVersionUID=-7505493186670281044L;privateJListlist=null;privateDefaultListModellistModel=null;publicListas(){super();initialize();}privatevoidinitialize(){listModel=newDefaultListModel();list=newJList(listModel);list.addMouseListener(newMouseAdapter(){@OverridepublicvoidmouseClicked(MouseEvente){pegaIdNaLista();}});preencheList();add(newJScrollPane(list),BorderLayout.CENTER);setSize(800,600);setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}privatevoidpreencheList(){for(MinhaClasseclasse:newControle().getMinhaClasseDeTO()){listModel.addElement(classe);}}privatevoidpegaIdNaLista(){MinhaClasseclasse=(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. privateclassControle{publicArrayList<MinhaClasse>getMinhaClasseDeTO(){ArrayList<MinhaClasse>lista=newArrayList<MinhaClasse>();MinhaClasseclasse1=newMinhaClasse();classe1.setId(1);classe1.setNome("Fulano");MinhaClasseclasse2=newMinhaClasse();classe2.setId(1);classe2.setNome("Bertano");lista.add(classe1);lista.add(classe2);returnlista;}}// ============================================================================================== // // Classe com os getters and setters, ou seja, TO privateclassMinhaClasse{privateintid;privateStringnome;@OverridepublicStringtoString(){returnnome;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}// Método principal publicstaticvoidmain(String[]args){newListas();}}
A
alucardmaas
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.
privatevoidbtrCartaoActionPerformed(java.awt.event.ActionEventevt){Stringformadepagamento=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.