-2

У меня проблема с 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."); 
} 

} Может кто-нибудь мне помогает? :)

ответ

1

Я не знаком с java gui, но основная его предпосылка заключается в том, что вам нужна кнопка onClickListener на левой и правой кнопках. когда пользователь нажимает кнопку, он будет вызывать ваш iterator.previous() или iterator.next() соответственно.

Если это андроид, я могу быстро отправить пример того, как это будет выглядеть.