Вот проблема, с которой я сейчас сталкиваюсь: я хочу нарисовать строку на JPanel, используя Java2D. Строка должна быть повернута на заданный пользователем угол.
Под этой строкой я также закрашиваю фон заданным цветом, чтобы облегчить чтение (на моем JPanel рисуется множество других вещей).
Что я сделал в переопределенном методе рисования моей JPanel, так это следующее:
final Graphics2D g2 = (Graphics2D) g.create();
final int textWidth = g.getFontMetrics().stringWidth(textToDraw);
final int textHeight = g.getFontMetrics().getHeight();
g2.translate(pointToDraw.x, pointToDraw.y);
g2.rotate(angle);
g2.setColor(textBackground);
g2.fillRect(deltaX, -textHeight, textWidth, textHeight);
g2.setColor(drawColor);
g2.setFont(font);
g2.drawString(textToDraw, deltaX, deltaY);
g2.dispose();
Это очень хорошо работает в Linux, но в Mac OS X (с Java 1.6) текст отображается неправильно: текст правильно повернут, но после каждого символа есть разрыв строки.
Как я могу заставить его работать на обеих платформах?