Duvida com JComboBox

3 respostas
R

Pessoal minha dificuldade é a seguinte também nem sei se isso pode ser feito mas estou querendo fazer algo assim, tenho um JComboBox q esta enxergando uma tabela no banco de dados estou dando um getSelectedItem() para ele me retornar o que for selecionado na combo, pois bem meu banco começa com o index 0 e a combo tbm mas eu consigo mudar o index da combo para -1 ai ela fica em branco a primeira seleção, minha pergunta é o seguinte tem como eu colocar um rotulo nessa posiçao tipo quero q a primeira seleçao fica como assim “escolha a opção” qndo é clicado na combo ela ae vai mostrar todos dados disponveis no banco e não aquela primira q serviria somente de rotulo qdo a combo estiver fechada…meio complicado mas entenderam

se alguém puder me ajudar
agradeço

3 Respostas

L

Ricardo,

eu tenho uma aplicação que desenvolvi onde utilizo algo similar ao que você expôs, porém a minha tabela não inicia com zero. Uma solução é realizar um shift, onde o ítem da posição 0 (zero) corresponde ao texto “selecione uma categoria…” e na hora de fazer a persistência ou qualquer outra operação que dependa do campo chave, basta subtrair uma unidade da posição do ítem.

Já vasculhei a API mas não encontrei algo parecido. :sad:

Qualquer coisa, estou na área!

Até mais,

Luís

R

e aí Luís, bele
então não entendi muito bem não, mas so corrigindo meu banco começa com index 1 desculpe tinha
falado que era index 0. Mas então oq eu to pensando em fazer é assim colocar na posiçao 1 do banco “escolha Opçao”
e configura a combo para iniciar com essa posição referenciada no banco q é primeira
ae fazer uma logica para a hora q abrir a combo naum permitir para selecioar essa "escolha opção " o ideal
seria q ela nem apareça mas tudo bem tenhoq ue ver se isso é possivel.
ah detalhe no meu banco essa tabela q a combo vai enxegar so tem uma coluna que lá estarão as opçoes
q ira popular a combo que esta disponivel para selecionar, portanto esse “rotulo”
q quero colocar na combo qdo ela esta fechada queria fazer isso na minha aplicação ao invez de ter todo
esse trabalho, pois que eu quero saber se existe um “rotulo” para a combo
verifiquei nas Api’s tbm e naum encontrei…

entaum se pudesse alguem me ajudar, não é possivel que naum há um jeito para isso

L

Ricardo, o meu código funciona da seguinte forma, que é a mesma que você precisa:

na minha tabela de categorias, tenho os seguintes dados:

id_categoria desc_categoria
======== ===============
1 Autônomo
2 Empresa Individual
3 Empresa Pública
4 Sociedade Civil
5 Organização Não Governamental
6 Sociedade Anônima

Como o JComboBox é zero-based, o primeiro ítem ficará na posição ZERO. Então via código fiz o seguinte:

Num.Item jComboBox-item
====== =======================
0 Selecione uma categoria…
1 Autônomo
2 Empresa Individual
3 Empresa Pública
4 Sociedade Civil
5 Organização Não Governamental
6 Sociedade Anônima

Segue o código:

try
 {
   jComboBox.removeAllItems();
   jComboBox.addItem( "Selecione uma categoria..." );
   stmt = connect.getStatement();
   ResultSet rs = stmt.executeQuery("select id_categoria, desc_categoria from categoria");

   while(rs.next())
   {
     String categoria = rs.getString("desc_categoria");
     jComboBox.addItem( categoria );
   }
 }
 catch( SQLException e)
 {
   System.out.println("Erro no acesso aos dados: "+e.getMessage() );
 }

… então quando eu for verificar a categoria selecionada pelo usuário, bastarei fazer o seguinte:

int id_categoria = jComboBox.getSelectedIndex();

Gostaria de ressaltar que fiz isso com a consciência de que essa tabela é estática, e foi uma solução temporária para uma necessidade bem pontual.

Abraços,

Luís

Criado 23 de março de 2005
Ultima resposta 23 de mar. de 2005
Respostas 3
Participantes 2