Bom dia. Sou iniciante em java e barrei em uma dúvida, estou desenvolvendo um projeto e nele preciso inserir uma JComboBox onde nela ira conter o nome de algumas cidades que estão cadastradas no banco de dados. Quando o usuário selecionar uma determinada cidade gostaria que o software soube-se o ID da cidade. Em outra linguagem que programo consigo fazer isso da seguinte maneira: adiciona as cidades na Combo e lá tenho há uma propriedade chamada Tag, onde consigo vingular ao nome inserido um valor controlado internamente, resumindo, preciso de algo que quando o usuario selecione um determinado item(cidade) ele consiga buscar o valor atribuido a ele, no caso o seu id. Será que tem algum componente parecido com isso no java ou alguém tem alguma sugestão para mim resolver esse problema.
/** * @param args */publicstaticvoidmain(String[]args){JFrameframe=newJFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setLayout(null);frame.setBounds(20,20,300,100);finalJLabellabel=newJLabel("Codigo da Cidade Escolhida");label.setBounds(10,40,200,21);frame.add(label);finalJComboBoxcombo=newJComboBox();combo.addItem(newTeste().newCidade(1,"Porto Alegre"));combo.addItem(newTeste().newCidade(2,"Canoas"));combo.addItem(newTeste().newCidade(3,"Charqueadas"));combo.setBounds(10,10,120,21);frame.add(combo);finalJButtonbotao=newJButton("Ok");botao.setBounds(140,10,100,21);botao.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){Integerid=((Cidade)combo.getSelectedItem()).getId();label.setText(String.valueOf(id));}});frame.add(botao);frame.setVisible(true);}publicclassCidade{privateintid;privateStringcidade;/** * @return Returns the id. */publicintgetId(){returnid;}/** * @param id The id to set. */publicvoidsetId(intid){this.id=id;}/** * @return Returns the cidade. */publicStringgetCidade(){returncidade;}/** * @param cidade The cidade to set. */publicvoidsetCidade(Stringcidade){this.cidade=cidade;}publicCidade(intid,Stringcidade){super();this.id=id;this.cidade=cidade;}@OverridepublicStringtoString(){returnthis.getCidade();}}
}
Ve se isso ajuda.
O segredo é o to String do Javabean.
O JcomboBox usa o toString dos objetos q adiciona.
Obs: fiz o java bean em uma inner class pra ficar tudo num arquivo só, mas pode(deve) fazer saparado.hehe.