从ArrayList删除的图像仍然显示

时间:2016-04-09 21:30:48

标签: java image arraylist javafx

我正在制作2D游戏,其中玩家的精灵存储在数组列表中。由于玩家有多个状态,我想在使用时删除以前的状态。我有一个ArrayList:

List<Image> x = new ArrayList();

现在我将此列表中的图片用作:someImageView.setImage(x.getImage(y));

我首先删除(例如5:0,1,2,3,4,5图像)状态为:

for(int i = 0; i < 6; i++)
    x.remove(y);

但是这些图像仍然显示而不是下一个图像集。

可能是某种缓存吗?如果是这样,我如何删除此缓存以便应用我的新图像?

我的精灵图像声明如下(对于一个图像显示,但对所有图像都相似):

Image someImg = new Image("path", true, false, true);

1 个答案:

答案 0 :(得分:2)

我不知道我是否理解你。

所以,你使用例如要在A上设置的列表的第一个元素(设置正确),然后从列表中删除此元素。

此时您是否希望图片也会从ImageView移除?

为什么要被删除?

该列表包含对象(指针)的引用。当您从列表中设置图像时,引用将传递给ImageView,因此现在它也将指向该对象。如果从列表中删除引用,则无关紧要,ImageView仍将指向该引用。

因此,您可以在删除元素后明确调用ImageView,或使用setImage并将图片设置为删除(如下所示):

ObservableList