2012-11-28 63 views
3

這說明字體尺度 enter image description hereGC和FonData獲取字體高度有什麼區別?

我認爲我們可以在SWT中獲得像這樣的「字體高度」

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

爲什麼這兩個出口不一樣?哪一個字符串的高度是正確的?

回答

1

GC#textExtent()返回程度像素,而FontData返回在字體。這裏的單位不同。

+0

那麼如何將SWT像素轉換爲點? – miqbal

+0

實際上並不完全確定,但我只是通過字體高度循環,直到達到我需要的像素高度。 –

+0

謝謝。但是,這似乎並不方便。 – miqbal

0

使用FontMetrics.getHeight()以像素爲單位獲得高度。

FontMetrics fontMetrics = gc.getFontMetrics() 
+0

使用此方法的問題是如果文本包含任何返回。使用textExtent將包含多行的像素。 – Michael