JavaFX provides both low-level path painting methods on a GraphicsContext
and a high-level Path
node.
I want to store shapes in classes and draw them in a GraphicsContext
. The Path
class seems convenient for me. I know, it is meant to be used as a node in the scene graph, but it contains all drawing elements I need.
I am looking for a method like
GraphicsContext.fillPath(Path)
but there is none.
Do I have to iterate over the Path
elements by hand and translate them into low-level GraphicsContext
methods, or did I miss something?
Do I have to iterate over the Path elements by hand and translate them into low-level GraphicsContext methods?
Yes. You will need to write a translator to take data extracted from a Path
and invoke appropriate graphics context methods (see the Path Rendering methods), for example beginPath()
, moveTo()
, lineTo()
, closePath()
, fill
, stroke()
, etc.
Rather than using a Path, you could perhaps use an SVGPath
. It is easy to translate an SVGPath from a Scene graph node data to a GraphicsContext method - you can just do gc.appendSVGPath(svgPath.getContent())
.