2014-02-17 35 views
1

我正在編寫包含GUI字體的.ttf文件的應用程序。加載字體似乎沒有問題,但是當使用deriveFont()方法來編輯字體大小時,字體看起來會變形(例如,不在同一行上,字母缺失,偏斜等)。Java自定義字體失真

這是爲什麼?有沒有辦法?

代碼來加載字體:

InputStream is = getClass().getResourceAsStream("/fonts/lg.ttf"); 
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
leagueGothic = Font.createFont(Font.TRUETYPE_FONT, is); 
ge.registerFont(leagueGothic); 

然後用deriveFont()

label.setFont(leagueGothic.deriveFont(Font.PLAIN, scale(50, 'x')); 

scale(int, char)改變大小隻是一種方法來改變大小正比於應用窗口的大小,它返回int

+0

[你可以測試](http://stackoverflow.com/questions/18461331/ttf-and-otf-versions-of-source-sans-pro-are-differently-displayed-in-swing-nimb/ 18462739#18462739) – mKorbel

回答

2

在您致電deriveFont()時,方法scale(int, char)「返回int」。它應該返回float,如size參數所要求的here

+0

嗯,它沒有做到這一點,文字字體就像它一直被扭曲一樣。 – user2505059

+1

_Distortion_讓我想到'AffineTransform';沒有[mctre](http://stackoverflow.com/help/mcve),很難說。 – trashgod