tenho seis ComboBox que possuem seis mesmos valores para todos.
O quê eu quero fazer é:
ter somente um ComboBox habilitado no começo do programa e conforme o usuário selecionar um valor neste, o segundo ComboBox passaria a ser habilitado e assim sucessivamente até o último ComboBox.
conforme eu selecionar um valor nos ComboBox’s anteriores, este valor não poderá estar habilitado para os próximos ComboBox.
Existe alguma palavra chave para eu procurar por um método que faça isso, ou necessariamente terei que fazer uma série de comparações!? Enfim, não sei como fazer. Tenho a parte dos seis ComboBox montados e com os respectivos valores, porém, não sei como começar a fazer.
Se eu entendi bem, vc precisa deixar todos os jcombos como enable false, menos o primeiro. Quando é selecionado o ítem no primeiro, vc dá enable true no próximo e adiciona os valores no próximo jcombo excluindo o selected item do primeiro combo, e o mesmo para os próximos combos. Consegue implementar isso?
Os valores dos Jcombos são fixos ou vc puxa de um BD?
newbcc
Cara, são valores fixos.
Poxa, que solução bacana. Desculpem-me pela minha limitação mas valeu muito a sua dica. Como está quase na hora de saída do trabalho, amanhã já começo a implementar esta lógica.
Valeu mesmo pela dica Reciclante. Abraços.
Qualquer coisa eu volto e posto as novidades/erros/lamentações
Valeu!!
newbcc
Opa, bom dia!!
Eu preciso necessariamente fazer muitas comparações para poder formar o String[] com os novos valores para cada um dos combobox?
Por exemplo.
Imagine que no primeiro comobox possuo os seguintes valores: 1,2,3,4,5 e 6
Escolhendo um deles, este valor não poderá estar disponível para os demais ComboBox; sendo assim e como são 6 ComboBox’s, o último teria apenas uma única opção a ser escolhida.
Existe uma maneira mais esperta de se formar esses vetores para cada um dos ComboBox’s ou tem que fazer vários “if - else”???
Obrigado mais uma vez!
Reciclante
Tentei rapidão criar aqui o que vc está fazendo e não vi necessidade de usar IF e Else. Cada vez que vc escolhe um ítem em um combo, ele some dos demais:
//Crie os 6 combobox no seu form e deixe-os sem conteúdo algum. Na inicialização do form adicione os ítens aos combos, adicione tudo em todos:jComboBox1.addItem("UM");jComboBox1.addItem("DOIS");jComboBox1.addItem("TRES");jComboBox1.addItem("QUATRO");jComboBox1.addItem("CINCO");jComboBox1.addItem("SEIS");jComboBox2.addItem("UM");jComboBox2.addItem("DOIS");jComboBox2.addItem("TRES");jComboBox2.addItem("QUATRO");jComboBox2.addItem("CINCO");jComboBox2.addItem("SEIS");//Deixe todos os combos como enable false, menos o primeiro.//Na ActionPerformed do primeiro combo coloque:privatevoidjComboBox1ActionPerformed(java.awt.event.ActionEventevt){jComboBox2.enable(true);jComboBox2.removeItem(jComboBox1.getSelectedItem());jComboBox3.removeItem(jComboBox1.getSelectedItem());jComboBox4.removeItem(jComboBox1.getSelectedItem());jComboBox5.removeItem(jComboBox1.getSelectedItem());jComboBox6.removeItem(jComboBox1.getSelectedItem());}//Repita para os demais CombosprivatevoidjComboBox2ActionPerformed(java.awt.event.ActionEventevt){jComboBox3.enable(true);jComboBox3.removeItem(jComboBox2.getSelectedItem());jComboBox4.removeItem(jComboBox2.getSelectedItem());jComboBox5.removeItem(jComboBox2.getSelectedItem());jComboBox6.removeItem(jComboBox2.getSelectedItem());}
Acho que com isso vc consegue fazer, eu testei aqui e funcionou, realmente removeu do próximo combo, o problema é que quando vc faz isso e quer mudar o que escolheu, não está devolvendo aos demais combos, teria que criar isso, ou inativar o combo usado depois da escolha, escolheu uma vez, já era, se errou, fecha o form e abre de novo.
Reciclante
Pensando melhor, vc pode criar um botão LIMPA e outro PRONTO nesse form, se eu errei a seleção dos ítens, clico no LIMPA e ele devolve todos os ítens aos combos, removendo antes qualquer coisa que tivesse lá com um jComboBox1.removeAllItems(). Já no borão PRONTO, vc pega o valor do selectedItem de cada um deles e usa na próxima etaque que vc tiver.
Isso tá me parecendo interface de jogo.
newbcc
Opa, beleza cara!?
Então segui o quê você havia sugerido e deu certo mesmo.
Estou usando as seguintes lógicas:
início somente o primeiro ComboBox com setEnabled ( true )
conforme eu “escuto” através dos meus Listeners eu habilito os seguintes, retirando com um: removeItem( .getSelectedItem ) o item anterior escolhido pelo usuário
se o usuário quiser modificar os valores anteriores ele tem que necessariamente preencher os demais campos para que quando o botão de limpeza seja acionado faça as devidas limpezas
e ao final tenho botão para identificar os valores escolhidos.
Valeu por essas dicas. E já aproveitando, você saberia me dizer como eu poderia popular o meu ComboBox com cores?
Por exemplo, em vez de aparecer um valor “1”, aparece uma listra de cor vermelha. A idéia seria poder selecionar cores, e não valores alfa-numéricos.
Bom as dicas foram demais!!! Valeu mesmo, abraços.
Reciclante
Cor eu não sei não. Mas acho que vc terá que fazer a lista das cores com os nomes delas e internamente no programa ligar esse nome a um código de cor.
Vou ficar devendo essa.
Valeu por essas dicas. E já aproveitando, você saberia me dizer como eu poderia popular o meu ComboBox com cores?
Eu dei uma pesquisada e construi o seguinte código que atende exatamente o que você pediu. Basta inserir a classe abaixo no seu projeto e em seguida adicionar itens ao seu JComboBox assim: