У меня проблема с ListIterator. Я хотел создать галерею изображений, используя LinkedList и шаблон mvc, теперь я создаю модель проекта, поэтому пока мне не нужно беспокоиться о графическом интерфейсе. Я создал основной класс ImageGallery, содержащий LinkedList изображений.Использование ListIterator с LinkedList (Java)
public class ListaImmagini implements Iterable<Immagine>{
private LinkedList<Immagine> listaImmagini;
private Iteratore iteratore;
public ListaImmagini(){
listaImmagini = new LinkedList<Immagine>();
iteratore = (Iteratore) listaImmagini.iterator();
}
public void addSingleImage(String percorso){
Immagine img = new Immagine(percorso);
listaImmagini.addFirst(img);
}
public void addFolder(LinkedList images){
listaImmagini = images;
}
public Immagine getImg(){
int currentIndex = iteratore.nextIndex();
return listaImmagini.get(currentIndex);
}
@Override
public Iterator<Immagine> iterator() {
Iteratore navigator = new Iteratore(listaImmagini);
return navigator;
}
Класс изображения очень прост:
public class Immagine {
private File immagine;
public Immagine(String percorso){
immagine = new File(percorso);
}
public File getImmagine() {
return immagine;
}
public String toString(){
return immagine.toString();
}
}
Теперь главная проблема заключается в том, что я должен перемещаться между изображениями с графическим интерфейсом с помощью кнопок, например, у меня есть текущее изображение больше, чем другие, предыдущее изображение и следующее изображение (для предварительного просмотра). Используя кнопки, я могу вернуться назад или вперед с изображениями. Для управления этим я использовал ListIterator, но я не знаю, как применить его к моему проекту.
Я пытался также создать свой собственный класс итератора со всеми методами модифицированы и адаптированы к моему проекту, но до сих пор я не могу понять, как я могу реализовать все методы ...
public class Iteratore implements ListIterator<Immagine>{
private LinkedList listaImmagini;
public Iteratore(LinkedList listaImmagini) {
this.listaImmagini = listaImmagini;
}
@Override
public boolean hasNext() {
boolean ris = false;
if (listaImmagini!=null) {
ris = true;
}
else{
ris = false;
}
return ris;
}
@Override
public Immagine next() {
Immagine img = null;
if (listaImmagini!=null) {
int currentIndex = nextIndex();
listaImmagini.get(currentIndex);
}
return img;
}
@Override
public boolean hasPrevious() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Immagine previous() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int nextIndex() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int previousIndex() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void remove() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void set(Immagine e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void add(Immagine e) {
throw new UnsupportedOperationException("Not supported yet.");
}
} Может кто-нибудь мне помогает? :)