Problema ao configurar JCombobox no formulario
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 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.
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));
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
Curtidas 0
Respostas
Davi Costa
24/07/2011
Nilo,
vc carrega esses campos do banco?
att Davi
vc carrega esses campos do banco?
att Davi
GOSTEI 0
Nilo Souza
24/07/2011
Exatamente.
GOSTEI 0
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
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
24/07/2011
quis dizer que o meu sql esta faltando o order by, ou seja, gerou varias linhas?
GOSTEI 0
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
att Davi
GOSTEI 0
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
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
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
24/07/2011
Opa !
Tudo bem ? Resolvido o problema ?
Caso positivo, poderia fechar o chamado ?
Obrigadão !
Tudo bem ? Resolvido o problema ?
Caso positivo, poderia fechar o chamado ?
Obrigadão !
GOSTEI 0