Tenho um jcombobox(desktop) atualizado a partir do meu banco por meio de um evento.
O problema é o seguinte: toda vez que eu clico no combo ele atualiza novamente e soma os valores, ficando assim, uma lista inacabável de informações repetidas.
Alguém sabe como resolver isso?
Apesar de você não ter especificado exatamente qual o evento que você está tratando. Provavelmente você está utilizando um evento do JComboBox que é disparado quando do preenchimento do mesmo (JComboBox), portanto, toda vez que você o preenche, automaticamente o evento é disparado novamente, gerando assim, um loop infinito.
T
thiroli
Exatamente isso que acontece, segue código para verificação:
privatevoidcomboSituacaoActionPerformed(java.awt.event.ActionEventevt)throwsException{ConexaoBancobanco=newConexaoBanco();combo=banco.Consulta("SELECT DISTINCT IM_SITUACAO FROM IMOVEL");while(combo.next()){edt_Sit_Imovel.addItem(combo.getString(1));}}
Jeferson_Manetti
thiroli:
Exatamente isso que acontece, segue código para verificação:
private void comboSituacaoActionPerformed(java.awt.event.ActionEvent evt) throws Exception {
ConexaoBanco banco = new ConexaoBanco();
combo = banco.Consulta("SELECT DISTINCT IM_SITUACAO FROM IMOVEL");
while (combo.next()){
edt_Sit_Imovel.addItem(combo.getString(1));
}
}
iaew cara blz…
bom acho q vc colocou o seu codigo no lugar errado…
o evento actionperformed e acinado toda vez q vc clica no combo… por isso ele carrega toda vez…
para corrigir este problema vc deveria colocar este codigo no construtor…
publicCostrutordaClasse(){ConexaoBancobanco=newConexaoBanco();combo=banco.Consulta("SELECT DISTINCT IM_SITUACAO FROM IMOVEL");while(combo.next()){edt_Sit_Imovel.addItem(combo.getString(1));}}
pronto agora qnd vc chamar sua classe ele vai carregar o comboBox com os itens do banco…
vc pode usar o ActionPerformed do combo para realiza alguma outra tarefa q dependa da escolha feita no combo…
ex.: temos 2 combos… 1 de Estado e outro de Cidade…
qnd escolho o de estado (dispara o actionPerformed) ele completa o de Cidades…
entendeu?
T
thiroli
Bom dia!
Bem pensado Jeferson_Manetti, mas acontece o seguinte…
Já tenho um método como este para alimentar inicialmente o meu form. Ele é alimentado com as informações do último registro do banco de dados.
O que eu preciso mesmo é de poder editar este combobox no botão e salvar no registro selecionado.
Thanks,
thiroli
Jeferson_Manetti
bom dia
hum… não fico muito claro pra mim sua real necessidade…
se puder esclarecer melhor… talvez descrever a situação pra gente…
qual e o tipo de informação q este combo vai receber…
se ele se relaciona com algum outro componente( tipo um table)…
como meus professores da pos dizem… descreva o dominio do problema…
heheheheh
blz cara!!!
T
thiroli
Olá…
Bom, vou tentar novamente desde o início…rsss
Preencho um formulário com o Firebird, em que, alguns jComboBox já vem devidamente alimentados com as informações de um registro, ou seja, já tenho um código no construtor.
Só que, quando o usuário quiser alterar os dados do combo, ele(combo) deve realizar uma nova consulta e apresentar as opções de uma outra tabela do BD com as opções disponíveis.
Agora acho que é isso!
Espero que entendam e desculpem me pela falta de clareza.
Thanks.
thiroli
fabiofalci
E as informações antigas continuam na combo? Esse é o problema?
Vc precisa limpar o model da combo.