Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ivanrodas en 27 Mayo 2014, 01:34 am



Título: problema con ListIterador
Publicado por: ivanrodas en 27 Mayo 2014, 01:34 am
Tengo un problema con los Iterator.

Tengo un panel con dos botones, siguiente y anterior, un iterador que si le doy a siguiente incrementa y si doy a anterior se reduce.

el problema viene ahora:

se supone que el iterador lo que me hace es recorrer las posiciones de los objetos que quiero mostrar dando a siguiente mostrara el siguiente dando a anterior mostrara el anterior , tengo un filtro en plan , mostrar solo camiseta,bolsos o zapatos.

cuando activo ese filtro y me muestra solo los zapatos y le doy a siguiente , cuando llega al ultimo zapato , si hay mas camisetas detrás de el lo que hace el iterador es aumentar hasta que llega al final y entonces me bloquea el botón siguiente pero , me muestra el zapato(eso lo tengo controlado) , tengo un botón que es borrar y lo que tendría que borrar es el objeto que muestra , pero lo tengo puesto como  Iterator.remove() , entonces me borra el ultimo objeto que en su caso es una camiseta, como podría solucionar eso?, no se si me explique con claridad.


muchas gracias



Título: Re: problema con ListIterador
Publicado por: Migugami en 27 Mayo 2014, 16:02 pm
Eso pasa por que el método remove de la interface Interator siempre elimina el último elemento de una lista. Lo que aquí tienes que hacer es identificar la posición en la lista de artículos del artículo actual, luego con el método remove(posicion) de la interface List, eliminas el artículo actual por medio de su posición.


Título: Re: problema con ListIterador
Publicado por: ivanrodas en 27 Mayo 2014, 20:03 pm
Solucione el problema creándome un objeto auxiliar , y cuando elimine el objeto el objeto auxiliar es la ultima posición mostrada, entonces hago remove(objauxiliar).

Gracias por la ayuda