文本不会旋转Graphics2D

时间:2018-02-08 15:19:00

标签: java graphics2d

我在网站上查看了所有示例。     我已经编写了代码,位置,文本字体更改,但角度或旋转没有发生。非常感谢任何帮助建议指针

int x = X;
    int y = Y;
    int w = 9;
    int h = 9;
    int fontsize = 7;

    Rectangle bounds = new java.awt.Rectangle(x, y, w, h);
    ShapeGroup group = new ShapeGroup();
    group.setAnchor(bounds);
    slide.addShape(group);

    Graphics2D graphics = new PPGraphics2D(group);
    AffineTransform affineTransform = new AffineTransform();
    affineTransform.rotate(50);

    java.awt.Shape circle = new Ellipse2D.Float(x, y, 9, 9);
    graphics.draw(circle);
    graphics.setPaint(colorRating);
    graphics.fill(circle);

    //graphics.rotate(-Math.PI/2);
    graphics.setColor(new Color(159, 78, 15));
    Font font = new Font("Arial", Font.BOLD, fontsize);
    Font rotatedFont = font.deriveFont(affineTransform);
    graphics.setFont(rotatedFont);
    graphics.setTransform(affineTransform);
    graphics.drawString(siteName, x + 11, y + fontsize + 1);
    graphics.setFont(font);

1 个答案:

答案 0 :(得分:0)

我向vldocking项目报告了类似的错误:当在MacOS上使用时,当标签位于左/右时,标签标题不会旋转90°。在进一步调查之后,我提交了一个补丁,该补丁相当于一行:

    graphics.setRenderingHint(
        RenderingHints.KEY_TEXT_ANTIALIASING,
        RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

如果没有抗锯齿,文本渲染会采用优化路径,从而跳过旋转字形的能力。

我不知道你是否在MacOS上,使用相同的java实现。尝试设置抗锯齿属性,如果这不起作用,还可以使用其他一些渲染提示。

祝你好运!