【问题标题】:Using ListIterator with LinkedList (Java)将 ListIterator 与 LinkedList (Java) 一起使用
【发布时间】:2015-01-21 19:04:39
【问题描述】:

我遇到了 ListIterator 的问题。我想使用 LinkedList 和 mvc 模式创建一个图片库,我现在正在创建项目的模型,所以现在我不必担心 GUI。我创建了包含图像 LinkedList 的主类 ImageGallery。

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();
}

}

现在,主要问题是我必须使用 GUI 使用按钮导航图像,例如,我有一个比其他图像大的当前图像、上一个图像和下一个图像(用于预览)。使用按钮我可以返回或前进图像。为了管理这个,我使用了 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.");
}

} 谁能帮我? :)

【问题讨论】:

    标签: java model-view-controller linked-list image-gallery listiterator


    【解决方案1】:

    我不熟悉 java gui,但它的基本前提是您的左右按钮都需要一个 onClickListener。当用户单击按钮时,它将分别调用您的 iterator.previous() 或 iterator.next()。

    如果这是 android,我可以快速发布一个示例来说明它的外观。

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多