JComboBox

Opa pessoal…

Eu estou querendo criar uma comboBox meio diferente e não sei como.

Imaginem que eu tenho uma combo box com 5 opções dentro.
E na mesma tela essa ComboBox aparece 3 vezes. Gostaria de fazer com que as opções já selecionadas desapareçam da comboBox, tem como fazer isso?

VELO

claro que tem como.
só dá uma pensada direito como vc faz essas verificações ai.

Eu toh meio perdido de como fazer isso pq o numero de JComboBox não eh fixo.

Hora pode ser uma só, hora, podem ter + de 5… :frowning:

Então crie uma classe que apenas faz esse controle, independente do número de combos criados.

Opa daniel,

Eu consegui fazer ± o que eu queria.

2 problemas.

1º - Não sei como readicionar um item a lista quando eu deseleciono ele.
2º - Eu gostaria que o item seleciona desaparecesse das outra Combo Box, mas que continuasse visivel na atual. Se tem ideia?!

VELO

Cara, tudo depende da maneira como vc está implementando isso. É questão de lógica.

Porque vc não faz algo ± assim:

[code]public class ComboboxItensController {
private List itens;
private List itensSelecionados = new ArrayList();
private List combos = new ArrayList();

public ComboboxItensController( List itens ) {
this.itens = itens;
}

public void addCombobox( JComboBox o ) {
combos.add( o );
}

public void itemSelecionado( JComboBox o, Object i ) {
itensSelecionados.add( i );
//aqui manda exibir o objeto “i” no combo “o”.
}

private void montarCombos() {
Iterator it = combos.iterator();
while( it.hasnext() ) {
montarItensCombo( (JComboBox) it.next() );
}
}

private void montarItensCombo( JComboBox o ) {
Iterator it = itens.iterator();
while( it.hasNext() ) {
Object o = it.next();
if( !itensSelecionados.contains( o ) ) {
// manda exibir no combo, seja diretamente
// ou seja via um combo model
}
}
}
}[/code]

Não está completo, mas a idéia é mais ou menos essa.