Preencher JComboBox com banco de Dados Atribuído ID no Index
6 respostas
javamysqlphp
W
wenderson.souzza
Ola,
alguém pode me ajudar com Preenchimento de JcomboBox com Banco de dados.
eu Faço um Select e Add o Intem do JcomboBox
Porem o Index dele Segue uma Sequencia
0 , 1 , 2, 4,
e no meu banco de dados esse JcomboBox deve ser preenchido só com determinados Registro
e o index do meu JcomboBox deve Ser o ID do meu Registro do banco
Não conseguir seta o index desse modo
Stringsql=" SELECT * FROM SISTEMA WHERE SITUACAO = 1 ";try{pst=conexao.prepareStatement(sql);rs=pst.executeQuery();while(rs.next()){cmbSistema.addItem(rs.getString("ID")+" "+rs.getString("NOME"));Stringa=String.valueOf(rs.getString("ID"));}conexao.close();}catch(Exceptionex){}}
Jovem para que você ta pegando o valor do ID nessa variável “a” do tipo String? Tente usar o método “.addItemIndex()” para adicionar os indexes. Porém acredito que será necessário passar um valor do tipo inteiro (caso for, pode ser solucionado através do Integer.parseInt()). Notei também que sua ID no banco é do tipo String, aconselho usar do tipo Inteiro, mais convencional.
W
wenderson.souzza
Tanto faz o Retorno do ResultSet
coloquei como Int
e esse Seu Metodo ".addItemIndex()"
não tem para JcomboBox cmbSistema.addItem(rs.getInt(“ID”) + " " + rs.getString(“NOME”));
não funcionou
W
wenderson.souzza
o que eu quero é que o Index do JcomoboBox seja o ID do meu Registro ( Exemple Index 10 Item ERP ) e não a Sequencia padrão dele de 1 ,2 3… porque Quando usar o Método cmbSistema.getSelectedIndex(); irei usar esse Index Para incluir um Registro e um nova Tabela do banco de dados então pega o ID do Sistema Selecionado é muito Importante
T
Thi_Ego
Acho que estranho você querer colocar todas essas informações no ID, uma vez que o ID (caso tenha utilizado como chave primaria serve exatamente para referenciar as informações). Vou olhar o método certinho quando chegar em casa e lhe informo. Lembrando que seu ID, fica composto por nº do item e nome, não sei para qual fim quer isso, somente para inserção em outra tabela? Porque para uma pesquisa futura, por exemplo, caso precise em sua aplicação, além de referencia o ID ainda terá de referenciar o nome juntamente, nada convencional.
W
wenderson.souzza
fiz um paliativo até conseguir pega minha iD
na imagem eu add no Item o ID do registro e seleciono o item quando Selecionado lá no Jcomobo…
com o Split pego só o ID
olha o código Abaixo da ação do JcomoboBox
classExemploDTO{privateLongid;privateStringdescricao;//setter e getterpublicStringtoString(){returndescrição}}comboBox.setRenderer(newListCellRenderer(){DefaultListCellRendererrenderer=newDefaultListCellRender();@OverridepublicComponentgetListCellRendererComponent(JListlist,Objectvalue,intindex,booleanisSelected,booleancellHasFocus){If(valueinstanceofExemploDTO){ExemploDTOex=(ExemploDTO)value;returnrenderer.getListCellRendererComponent(list,ex.getDescricao(),index,isSelected,cellHasFocus);}else{returnrenderer.getListCellRendererComponent(list,value.toString(),index,isSelected,cellHasFocus);}});