Вы должны определить i
локально в вашем методе paintComponent
, а не вне его, и инициализировать его там как 0
.
В противном случае вы всегда рисуете только новые элементы списка, а не старые.
Edit:
Вы можете написать свой цикл лучше как цикл for:
for(int i = 0; i < Paint4Fun.lista.size(); i++) {
FormaPrimitiva forma = Paint4Fun.lista.get(i);
forma.desenha(g);
}
или еще яснее:
for(FormaPrimitiva forma : Paint4Fun.lista) {
forma.desenha(g);
}
Как правило, всегда объявляйте переменные (например, i
здесь) в наименьшей возможной области видимости (метод или даже цикл, здесь).