Ajuda - Problema no meu código que insere somente dados diferentes em um jComboBox

5 respostas
Mapko

Gente....estou com um problema e justo nas ultimas horas que tenho pra finalizar o meu trabalho....

Eu tenho um ArrayList de objetos e estou inserindo dados num jComboBox.....
Não acontece nenhum erro mas acredito que pode ser lógica...

for (int i = 0 ; i  < lista.size() ; i ++) {
                
               if ( ! lista.get(i).getDominio().equalsIgnoreCase("")){
                   
                   for (int j = 0 ; j < jComboBox1.getItemCount(); j ++) {
                       
                   if ( ! jComboBox1.getItemAt(j).equals(lista.get(i).getDominio())) {
                      jComboBox1.addItem(lista.get(i).getDominio());
                  }
                   
                }
                   
                } 
               
              }

eu tenho alguns nomes repetidos no campo getDominio e não quero inserir quando este item já estiver nesse jComboBox...no resultado não carrega nenhum ítem no jComboBox.....

não quero inserir tbm quando o campo getDominio tiver vazio.......

se alguém puder me ajudar nem se for uma dica eu agradeço muito....

5 Respostas

thegoergen

Aquele se for interno eu não entendi…

Ele nunca entra, porque o jComboBox1 inicia vazio e ele é enquanto ( j < jComboBox1.getItemCount() ) , ou seja, enquanto j<0… reveja essa parte!

Mapko
if (! lista.get(0).getDominio().equalsIgnoreCase("")) {
                   jComboBox1.addItem(lista.get(0).getDominio());
               }
                     
            for (int i = 0 ; i  < lista.size() ; i ++) {
                
               if ( ! lista.get(i).getDominio().equalsIgnoreCase("")){
                   
                   for (int j = 0 ; j < jComboBox1.getItemCount(); j ++) {
                       
                   if ( ! jComboBox1.getItemAt(j).equals(lista.get(i).getDominio())) {
                      jComboBox1.addItem(lista.get(i).getDominio());
                  }
                   
                }
                   
                } 
               
              }

fiz isso agora e ele traz vários dados e repete eles...vai inserindo muitas vezes....e agora???
(tenho só mais uma hora!!!! alguém me ajude!! rsrs)

thegoergen
Tenta isso: testei com Stringsd e funcionou, não sei com esses Dominios.. hehhe
for (int i = 0 ; i  < lista.size() ; i ++) { // percorre toda a lista
		  
		  if ( ! lista.get(i).getDominio().equalsIgnoreCase("")){ // se for vazio, não coloca
			boolean existe = false; // Inicialmente supõe-se que não exista
			for (int j = 0 ; j < jComboBox1.getItemCount(); j ++) { // Percorre todos os elementos que já estão na ComboBox
			      
			      if ( jComboBox1.getItemAt(j).equals( lista.get(i).getDominio() ) ) { // Verifica se existe
				   existe = true; // existe esse domínio na combo
				   break; // Não precisa mais procurar, já sabe que existe
			      }
			      
			}
			
			if (!existe){ // Caso ainda não exista...
			      jComboBox1.addItem(lista.get(i).getDominio()); // Inclui. Perceba que essa parte está fora do FOR interno, não dentro, como tu tinhas colocado
			}
			
		  }
		  
	    }
Mapko

thegoergen

muito obrigado…

funciono prefeitamente…agora só tenho que implementar em mais uns 7 métodos…

muito obrigado mesmo salvou minha vida…

thegoergen

Mapko:
thegoergen

muito obrigado…

funciono prefeitamente…agora só tenho que implementar em mais uns 7 métodos…

muito obrigado mesmo salvou minha vida…


De nada. É melhor correr então, já uqe tem pouco tempo. Nada de ficar na viajando na net! hauhauahau

Criado 2 de abril de 2008
Ultima resposta 2 de abr. de 2008
Respostas 5
Participantes 2