Dicas para se popular um JComboBox com informações do banco
5 respostas
furacao123
Aew galera estou precisando de umas dicas para se popular um JComboBox com dados vindos do banco de dados com tabelas relacionadas...
por exemplo tenho um funcionario que é ligado a uma empresa...para mim selecionar a empresa tenho um combo onde seleciono a empresa mas para mim popular esse combo e setar o id da empresa qdo for salvar o cadastro de funcionario fica muito confuso por exemplo...
/**** FUNCOES PARA POPULAR COMBO EMPRESA ****/publicvoidobterRegistroEmpresa(){//retorna uma matriz de empresalinhaEmpresa=empresa.consultarEmpresa();//atribui o numero de registros na tabela empresa para o vetorlistaEmpresaID=newString[empresa.numEmpresa()+1];listaEmpresa=newString[empresa.numEmpresa()+1];inti=1;listaEmpresaID[0]="0";listaEmpresa[0]="Selecione";while(i<=(linhaEmpresa.size())){//monta os vetores atribuindo os valorescolunaEmpresa=(Object[])linhaEmpresa.get(i-1);listaEmpresaID[i]=colunaEmpresa[0].toString();listaEmpresa[i]=colunaEmpresa[2].toString();i++;}//Modela os vetores ComboBox com vetor passadocbEmpresa.setModel(newjavax.swing.DefaultComboBoxModel(listaEmpresa));}publicvoidPopularComboEmpresa(Stringvalor){inti=1;while(i<=linhaEmpresa.size()){if(listaEmpresaID[i].equals(valor)){cbEmpresa.setSelectedIndex(i);}i++;}}
e para salvar eu verifico os indices e gravo o id correspondente no banco...
qual é a maneira mais inteligente de se fazer em java???
Eu faço da seguinte forma, preencho o combo empresa no seguinte formato: “nome_empresa” + concateno uns 30 espaços em branco e depois disso coloco o id da empresa formatado com 5 caracteres…ficaria assim
RobinsonCompany00001RobinsonDevelopers00002
Ai no evento da combo apenas dou uma “espécie de rigth” no valor selecionado, pegando o id. Com esse id em mãos, passo ele para a rotina que carregará a combo funcionário
devel.andrerocha
Usa o clássico…cria um Model com dois atributos id e Description, reescrreve o metodo toString informando que este cara vai retornar a variabel Description, depois é so ir dando add no jCombobox e que ele ja vai ficar com o id do cara que vc adicionou e o texto que vai aparecer é exatamente oeuq vc quer…na hora de recuperar este cara…
rmendes08
robinsonbsilva:
Jovem,
Eu faço da seguinte forma, preencho o combo empresa no seguinte formato: “nome_empresa” + concateno uns 30 espaços em branco e depois disso coloco o id da empresa formatado com 5 caracteres…ficaria assim
RobinsonCompany00001RobinsonDevelopers00002
Ai no evento da combo apenas dou uma “espécie de rigth” no valor selecionado, pegando o id. Com esse id em mãos, passo ele para a rotina que carregará a combo funcionário
warning: gambiarra detected
furacao123
alguem teria algum exemplo em código de um modelo de JCombox da maneira que eu preciso estou tentando implementar mas nao intendi muito bem onde entra na historia o toString eu tentei reescrever o DefaultComboBoxModel mas nao consegui
furacao123
Malz pelo post duplo minha net nao carregava a pagina...
sobre os exemplos em codigo encontrei um pesquisando por aqui e deu certo...vou mandar pra se alguem quiser usar
importjava.util.ArrayList;importjava.util.List;publicclassFornecedor{privateIntegerid;privateStringnome;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}/** * Simula a recuperação dos fornecedores do banco de dados * @return uma lista com os fornecedores */publicstaticListgetAll(){ArrayListlist=newArrayList();Fornecedorfornecedor=newFornecedor();fornecedor.setId(newInteger(1));fornecedor.setNome("Fornecedor 1");list.add(fornecedor);fornecedor=newFornecedor();fornecedor.setId(newInteger(2));fornecedor.setNome("Fornecedor 2");list.add(fornecedor);fornecedor=newFornecedor();fornecedor.setId(newInteger(3));fornecedor.setNome("Fornecedor 3");list.add(fornecedor);returnlist;}/** * Faz com que o nome seja mostrado no combo */publicStringtoString(){returnthis.getNome();}}