I'm having big problems bounding() in Java2d with LineBreakMeasurer.
Anyone have any ideas? The Rectangle drawn doesn't sit on the string like it should. The bounds method normally works ok. I think its maybe this bug..

http://bugs.sun.com/bugdatabase/view...bug_id=4463424

Anyone able to code me a workaround to this please?
 
Font font = new Font(layMod.getBotName_fontName(), layMod.getBotName_fontWeight(),
layMod.getBotName_fontSize());
g2d.setColor(Color.BLACK);
g2d.setFont(font);
FontRenderContext frc= g2d.getFontRenderContext();
TextLayout layout = new TextLayout("Some text", font, frc);
AttributedString astr = new AttributedString("Some text");
astr.addAttribute(TextAttribute.FONT, font);
AttributedCharacterIterator paragraph = astr.getIterator();
frc = g2d.getFontRenderContext();
LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(paragraph, new FontRenderContext(null, false, false));
 
int paragraphStart = paragraph.getBeginIndex();
int paragraphEnd = paragraph.getEndIndex();
Dimension size = r2d.getBounds().getSize();
float formatWidth = (float) size.width;
 
float drawPosY = layMod.getBotName_y_position()*scalar;
 
lineMeasurer.setPosition(paragraphStart);
while (lineMeasurer.getPosition() < paragraphEnd) {
 
layout = lineMeasurer.nextLayout(formatWidth);
drawPosY += layout.getAscent();
float drawPosX;
if (layout.isLeftToRight()) {
drawPosX = layMod.getBotName_x_position()*scalar;
}
else {
drawPosX = formatWidth - layout.getAdvance();
}
 
layout.draw(g2d, drawPosX, drawPosY);
drawPosY += layout.getDescent() +
layout.getLeading();
}