Paths in Java2D (in the form of java.awt.geom.Path2D
or java.awt.geom.GeneralPath
) can have any java.awt.Shape
appended to them. java.awt.geom.Ellipse2D
represents a circle or oval, and it implements java.awt.Shape
so you can add one to a Path2D.
You can draw paths onto a java.awt.image.BufferedImage
and draw the buffered image onto the screen.
The Java2D API really is what you need.