将 ListIterator 与 LinkedList 一起使用 (Java)
Using ListIterator with LinkedList (Java)
我被 ListIterator 的问题困住了。我想使用 LinkedList 和 mvc 模式创建一个图片库,我现在正在创建项目的模型,所以现在我不必担心 GUI。我创建了包含图像链接列表的主要 class 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;
}
class图像很简单:
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,但我不知道如何将它应用到我的项目中。
我也尝试创建自己的迭代器class,其中所有方法都经过修改并适应了我的项目,但我仍然不明白如何实现所有方法...
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 gui,但它的基本前提是您的左右按钮都需要一个 onClickListener。当用户单击该按钮时,它将分别调用您的 iterator.previous() 或 iterator.next() 。
如果这是 android,我可以快速 post 举例说明它的外观。
我被 ListIterator 的问题困住了。我想使用 LinkedList 和 mvc 模式创建一个图片库,我现在正在创建项目的模型,所以现在我不必担心 GUI。我创建了包含图像链接列表的主要 class 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;
}
class图像很简单:
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,但我不知道如何将它应用到我的项目中。
我也尝试创建自己的迭代器class,其中所有方法都经过修改并适应了我的项目,但我仍然不明白如何实现所有方法...
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 gui,但它的基本前提是您的左右按钮都需要一个 onClickListener。当用户单击该按钮时,它将分别调用您的 iterator.previous() 或 iterator.next() 。
如果这是 android,我可以快速 post 举例说明它的外观。