Patrick Murris from the NASA World Wind Java project has pointed out that for

high-quality rendering of text it is necessary to use floating-point precision

rather than integer precision. The Rectangle2D from getBounds() needs to not be

rounded to an integer size, and draw() needs an overloading taking a

floating-point x and y.

More details from Patrick on related usage, which may inform changes to the

Javadoc of the getBounds() method:

"The trick to get the most accurate advance measurements is:

1. avoid cumulating text chunks bounds width. They get rounded to int and errors

sum up. Reevaluate all previous chunks in one getBounds() to eliminate

cumulative errors.

2. use the getBounds() rectangle x and y properties to compute advance for one

chunk. Advance on x is bounds.getWidth() plus bounds.getX(). This way, leading

spaces are almost correctly accounted for.

This gives very acceptable results for word by word processing.

However, the one limitating thing i see here is the rounding to int of all draw

and getBounds coordinates. Allowing floats or doubles would ease the above point

one."