Вы должны управлять чертежом в методе paintComponent
. Java Graphics не с состоянием , вы должны позаботиться о том, что вам действительно нужно, чтобы нарисовать все, что вы хотите внутри метода. Каждый раз, когда вызывается метод рисования, все должно быть нарисовано снова, на холсте нет ничего, что остается при добавлении других компонентов
Это означает, что вы должны хранить список элементов, которые будет рисовать метод рисования, например. ArrayList<Point> points
, тогда в методе рисования вы должны выполнить их итерацию:
for (Point p : points)
draw the point
так что вы просто добавляете точку в список с помощью слушателя и вызываете перерисовку.
Вы можете найти рекомендации по рисованию Swing / AWT здесь ..
У определенного API есть поведение, которое вы хотели бы иметь, хотя оно называется Cocos2D и имеет порт для Android / Java, который вы можете найти здесь .