Problema ao configurar JCombobox no formulario

Java

24/07/2011

Colegas,tenho a tabela com os registros:
1- Cadastro de Usuario2-Cadastro de fornecedor3-Cadastro de produto4-Cadastro de Cliente
Quero atualizar o jcombobox usando o Código abaixo. Tudo funciona, porém o resultado da linha  
cbxFormulario.setSelectedIndex((campoTabela));  
não esta funcionando.
a variavel campoTabela, pega o resultado da coluna ID_Tabela, (isso funciona), por exemplo se for 2, o resultado no codigo acima é cbxFormulario.setSelectedIndex(2);No JCombobox era para aparecer Cadastro de Fornecedor (vide lista acima)  esta aparecendo Cadastro de cliente, se for cbxFormulario.setSelectedIndex(1) aparece Cadastro de produto, ou seja esta somando 2 ao setar o setSelectedIndex. Como faço para pegar o resultado correto.
 private void carregarCampos(){   try {                                    // Codigo para pegar o campo da tabela           Object Id =  tblGrupo.getValueAt(tblGrupo.getSelectedRow(),0);            Object Tbl =  tblGrupo.getValueAt(tblGrupo.getSelectedRow(),1);                                  int campoID = Integer.parseInt(Id.toString()) ;//Guarda o valor da coluna id_grupo que esta oculta           int campoTabela = Integer.parseInt(Tbl.toString()) ;//Guarda o valor da coluna id_tabela que esta oculta                      //Executa consulta para pegar os registro e carregar os campos           Lista = grpsDao.getGrupoSubTabela(campoID,campoTabela);           ListaGrupo = grpDao.getGrupo(campoID);                      //Atualiza os campos do formulario           txtCodigo.setText(""+Lista.getId_grupo());           txtGrupo.setText(ListaGrupo.getNome());                       cbxFormulario.setSelectedIndex((campoTabela));                                  //Atualiza o checkbox de permissão no Jtable            if ("N".equals(Lista.getIncluir())){                            jcbIncluir.setSelected(false);            }else{                             jcbIncluir.setSelected(true);                             }                        if ("N".equals(Lista.getAlterar())){                            jcbAlterar.setSelected(false);            }else{                             jcbAlterar.setSelected(true);                             }                        if ("N".equals(Lista.getExcluir())){                            jcbExcluir.setSelected(false);            }else{                             jcbExcluir.setSelected(true);                             }                        if ("N".equals(Lista.getVisualizar())){                            jcbVisualizar.setSelected(false);            }else{                             jcbVisualizar.setSelected(true);                             }                                    if ("N".equals(Lista.getImprimir())){                            jcbImprimir.setSelected(false);            }else{                             jcbImprimir.setSelected(true);                             }                                            } catch (SQLException ex) {            Logger.getLogger(frmFornecedor.class.getName()).log(Level.SEVERE, null, ex);        }    }
Nilo Souza

Nilo Souza

Curtidas 0

Respostas

Davi Costa

Davi Costa

24/07/2011

Nilo,
vc carrega esses campos do banco?

att Davi
GOSTEI 0
Nilo Souza

Nilo Souza

24/07/2011

Exatamente.
GOSTEI 0
Davi Costa

Davi Costa

24/07/2011

Ok não sei se vc debugou e observou se o retorno do banco veio dessa ordem que vc mostrou no início do chamado.
Pq isso não é garantido, para garantir essa ordenação use um order by conforme sua necessidade.
Dá para fazer isso via jdbc e se estiver usando JPA tb.

Faz essa alteração e confirma se continua com esse problema.

att Davi
GOSTEI 0
Nilo Souza

Nilo Souza

24/07/2011

quis dizer que o meu sql esta faltando o order by, ou seja, gerou varias linhas?
GOSTEI 0
Davi Costa

Davi Costa

24/07/2011

Não só quer dizer que a ordem que vem do seu banco nem sempre é garantida. Só isso, essa cláusula só serve para ordenar segundo a coluna que vc quiser, por um id, ou alguma descrição/nome... e por ai vai

att Davi
GOSTEI 0
Nilo Souza

Nilo Souza

24/07/2011

A Variavel campoTabela, pega o valor do Jtable, não do banco. pega o valor da 2 coluna do jtable e da linha correspondende.
GOSTEI 0
Davi Costa

Davi Costa

24/07/2011

Vc usa o order by, para preencher o jtable, para garantir a ordem conforme  a coluna que vc desejar da tabela.
Depois vc que pegar esse valor dessa jtable, não é isso?
Verifica se esse get que vc dá não inicia no 0, zero no jtable e primeiro da sua consulta no banco.
É muita comum coleções no java iniciar no ...get(0);

att Davi
GOSTEI 0
Dyego Carmo

Dyego Carmo

24/07/2011

Opa !

Tudo bem ? Resolvido o problema ?

Caso positivo, poderia fechar o chamado ?

Obrigadão !


GOSTEI 0
POSTAR