Remover item de JList

3 respostas
J

Olá galera,
estou tentanto remover um intem de um JList e nao estou conseguindo estou gerando uma exeção:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range

estou tentado removar assim:

testa =  selected[jl_selected.getSelectedIndex()];   
                   jl_selected.remove(jl_selected.getSelectedIndex());   
                   jl_selected.validate();  
 testa =  selected[jl_selected.getSelectedIndex()];
                    jl_selected.remove(jl_selected.getSelectedIndex());
                    jl_selected.validate();

como deve ser?
Grato.

3 Respostas

P

verifica qual o valor que esse metodo retorna jl_selected.getSelectedIndex(), pode ser que ele esteja retornando se é primeiro segundo terceiro e assim por diante, como o jList começa do zero isso seria um problema, outro é ele não estar retornando nada. Não tenho como testar, pois estou sem java temporariamente. Da uma verificada

A

bem isso…

P

Toda vez que você remover itens de uma estrutura tipo vetor de dados, sempre faça o loop do final para o começo pois a medida que você vai removendo itens o tamanho do vetor é alterado. Segue um exemplo de um listener para remover dados de um JList.

list = é o meu objeto JList
modeloLista = é meu objeto DefaultListModel

jbRem.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				int[] selecionados = lista.getSelectedIndices();
				int size = selecionados.length-1;
				
				for(int i=size;i>=0;i--)
				{
					modeloLista.remove(selecionados[i]);
				}
			}
		});
Criado 4 de maio de 2008
Ultima resposta 28 de nov. de 2009
Respostas 3
Participantes 4