循环遍历ArrayList,仅选择ArrayList中的最后一个元素

时间:2017-01-30 21:29:14

标签: 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代码行,则会出现两个矩形但会弄脏屏幕。

有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:4)

移动此行:

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

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