浮动字体大小在OpenJDK中不起作用

时间:2018-06-17 11:48:34

标签: java fonts awt fontmetrics

浮动字体大小在OpenJDK中不起作用。 似乎在计算字符串边界时将字体大小四舍五入 例如11.4 - > 11& 11.5 - > 12 但是在oracle jdk中它工作得很好。

知道如何在OpenJDK 8中解决这个问题吗?

程序:

    import java.awt.Font;
    import java.awt.font.FontRenderContext;
    import java.awt.geom.Rectangle2D;

    public class TestFont {
        public static void main(String  []args){
            FontRenderContext frc = new FontRenderContext(null, true, true);
            Font font = new Font("Courier New",0,(int)11.5);
            font = font.deriveFont(11.5f);
            Rectangle2D bound = font.getStringBounds("PAGE",0,4, frc);
            System.out.println("Char width:"+ bound.getWidth() / 4);
            Font2D font2D = FontUtilities.getFont2D(font);
            System.out.println("Font2D:" + font2D.toString());
        }
    }

结果:

OpenJDK 7,8,9:
Char width:7.201171875
Font2D:** TrueType Font: Family=Courier New Name=Courier New style=0 fileName=C:\windows\Fonts\cour.ttf

Oracle JDK 8:
Char width:6.901123046875
Font2D:** TrueType Font: Family=Courier New Name=Courier New style=0 fileName=C:\windows\Fonts\cour.ttf

1 个答案:

答案 0 :(得分:0)

这就是我在想的^^。这是与您的问题相关的主题:

Fonts slightly wider in OpenJDK vs OracleJDK