Limpando um Array

2 respostas
Chaia

Bom dia…
Tenho dois JComboBox um JCBEstado e outro JCBCidade quando seleciono um item do JCBEstado ele lista no jCbCidade somente as cidades daquele estado… só que se eu seleciono outro estado novamente no JCBCidade fica as cidades do estado que tinha selecionado anteriormente e as do que eu selecionei por ultimo… como estou usando um array acredito que o que esta ocorrendo é que não esta limpando este array.

Exemplo:
Seleciono Rio Grande do Sul
[Cachoeira do Sul, Santa Cruz do Sul, Santa Maria, Agudo]

Segunda vez seleciono Santa Catariana
[Cachoeira do Sul, Santa Cruz do Sul, Santa Maria, Agudo, ABDON BATISTA, ABELARDO LUZ, AGROLANDIA, AGRONOMICA, AGUA DOCE, AGUAS BRANCAS, AGUAS CLARAS, AGUAS DE CHAPECO, AGUAS FRIAS, AGUAS MORNAS, AGUTI, AIURE, ALFREDO WAGNER, ALTO ALEGRE, ALTO BELA VISTA, ALTO DA SERRA]

Estou usando o jCBCidade.removeAllItems(); mas mesmo assim não limpa os itens.

private JComboBox getJCBEstado() {
		if (jCBEstado == null) {
			jCBEstado = new JComboBox();
			jCBEstado.setBounds(new Rectangle(75, 64, 155, 21));
			
				try {
					bd.populaComboEstado(jCBEstado);
				} catch (SQLException e1) {
					e1.printStackTrace();
				}
		
			jCBEstado.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					JComboBox source = (JComboBox) e.getSource( );
			        String item = (String)source.getSelectedItem( );
			        bd.adicionaCidade(item);
			       
			        	try
			        	  {	
			        		jCBCidade.removeAllItems();	
			        		String[] cidades =  new String[bd.qtdCidade()];  
			                cidades = bd.getItemsCidade();
			                
			                for (int x=0; x< cidades.length; x++){
			                	jCBCidade.addItem(cidades[x]);
			                } 
			                
			        	
			        	  } catch (Exception ea){
			        		  
			        	  }
				
				}
			});
		
			
		}
		return jCBEstado;
	}

Fico no aguardo… valeu.

2 Respostas

RenataFA

Debug esse trecho e veja o que encontra:

bd.adicionaCidade(item);  
                      
try {   
     jCBCidade.removeAllItems();   
     String[] cidades =  new String[bd.qtdCidade()];    
     cidades = bd.getItemsCidade();  // aqui! veja se nesse momento o array cidades possue msm  as cidades que vc quer na segunda vez
                               
     for (int x=0; x< cidades.length; x++){  
          jCBCidade.addItem(cidades[x]);  
     }   
} catch (Exception ea){  
}
Chaia

Consegui solucionar… estou utilizando objeto que passa os dados para um Array então era no objeto que estava quardando os dados dai fiz isto:

vest.removeAllElements();

Dai funcionou…
Valeu pela ajuda.

Criado 15 de outubro de 2007
Ultima resposta 15 de out. de 2007
Respostas 2
Participantes 2