java - 遍历 ArrayList 只选择 ArrayList 中的最后一个元素

标签 java arraylist javafx

我试图让几张图片在屏幕上跳动,但只有 ArrayList 中的最后一张图片出现。

for(Letter l : Letters) {
    clearAndDraw(gameMenuGraphicsContext, gc -> 
        gc.drawImage(
            l.letterImage, 
            l.letterRectangle.getX(), 
            l.letterRectangle.getY()
        )
    );
    gameMenuGraphicsContext.drawImage(
        l.letterImage, 
        l.letterRectangle.getX(),
        l.letterRectangle.getY()
    );
    l.move();
}

private void clearAndDraw(GraphicsContext gc, Consumer<GraphicsContext> draw) {
    gc.clearRect(0, 0, gc.getCanvas().getWidth(), gc.getCanvas().getHeight());
    draw.accept(gc);
}

如果我删除 clearAndDraw 代码行,两个矩形都会出现,但它们会弄脏屏幕。

有什么办法可以解决这个问题吗?

最佳答案

移动这一行:

gc.clearRect(0, 0, gc.getCanvas().getWidth(), gc.getCanvas().getHeight());

for 循环之前。然后它将在绘制所有矩形之前清除屏幕。

关于java - 遍历 ArrayList 只选择 ArrayList 中的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945712/

相关文章:

java - 在 AsyncTask 进程中检索位图时发生错误

java - 如何找到与 java 中的输入匹配的正则表达式模式部分?

java - 我可以在 Realm 对象 android 中有字符串的 arrayList

java - Android中的子列表Arraylist

java - 如何修复 javafx 中的渲染错误(ComboBox、ListView)

JavaFX:如何更改行颜色?

java - 如何解决 JavaFX 项目中的 'Location is required'

java - 如果您已经重定向标准输出,是否可以访问控制台?

c# - 线程 : does c# have an equivalent of the Java Runnable interface?

java - 使对象的字段对于数组列表中存储的每个对象都是唯一的