【问题标题】:What's the difference between GC and FontData for getting font height?GC 和 FontData 获取字体高度有什么区别?
【发布时间】:2012-11-16 06:28:37
【问题描述】:

这解释了字体度量

我认为我们可以像这样在 SWT 中获得“字体高度”;

GC gc = new GC(label);
System.out.println( gc.textExtent(label.getText()) );
System.out.println( label.getFont().getFontData()[0].getHeight() );

为什么这两个出局不一样?哪个是字符串的正确高度?

【问题讨论】:

    标签: java fonts swt font-size


    【解决方案1】:

    GC#textExtent()像素返回范围,而FontData字体返回。这里的单位不同。

    【讨论】:

    • 其实不太确定,但我会遍历字体高度,直到达到我需要的像素高度。
    • 谢谢。但这似乎不是一种方便的方法。
    • @miqbal:你可以通过Device.getDPI()获取系统DPI,例如pixels = points * Device.getDPI() / 72
    • @EdwardThomson: Device.getDPI() 返回Point
    【解决方案2】:

    使用FontMetrics.getHeight() 获取以像素为单位的高度。

    FontMetrics fontMetrics = gc.getFontMetrics()
    

    【讨论】:

    • 使用此方法的问题是文本是否包含任何返回。使用 textExtent 将包含多行的像素。
    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 2011-02-05
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多