We've just released FXGraphics2D version 1.1, a Java2D to JavaFX bridge, a small and fast library that takes Java2D API calls and maps them to a JavaFX Canvas node. We developed this library to add JavaFX support to our charting libraries (JFreeChart and Orson Charts) but, as you'll see later in this post, FXGraphics2D is a standalone library that can be used by other Java code as well.
First, we've added detection for the
KEY_STROKE_CONTROL rendering hint, which provides sharper looking output particularly for horizontal and vertical lines. Compare the axis and grid lines in the following two charts (based on one of the JFreeChart demos). The first chart has the stroke normalisation applied (the axis and gridlines are sharp and well defined):
The second chart has no stroke normalisation and you can see that the axis lines are blurred (and, in some cases, the grid lines also):
A clipping issue that was affecting a subset of charts (combined plots) in JFreeChart has been fixed.
We addressed a memory leak that was reported for the demo applications (it is important that each repaint for the Canvas is preceded with a call to clearRect() to clear an internal queue of drawing commands that JavaFX uses).
Finally, we've included Maven build support and you can now find FXGraphics2D on the Central Repository.
FXGraphics2D includes demos that use JFreeChart and Orson Charts to generate the graphical content that is rendered by the FXGraphics2D code. However, it is important to realise that FXGraphics2D is a standalone API and can be used with any Java code that uses the Java2D drawing API, so a lot of existing Java2D code to be retained for use in JavaFX applications.
To illustrate, here is a screenshot of a small demo application that renders equations using JLaTeXMath and FXGraphics2D:
You can see the source code and some discussion about this example at Stack Overflow.
FXGraphics2D 1.1 is a general purpose graphics utility that extends the reach of Java2D code to include JavaFX applications. This latest release improves the quality of the library following community feedback.
If you'd like to give feedback on this post, please comment via the FXGraphics2D forum.