2012-02-06 34 views
0

我設法將新的物理字體導入到Java中。我想在標籤上使用我的新字體,但顯然這是不可能的。是否有任何解決方法可以給我類似的結果(或者更好,讓我在標籤上使用它)?Java - 導入物理字體

回答

0

只需使用setTypeface方法。

+0

你能給我一些更多的細節嗎?我已經使用過'最終字體elvishFont =新字體(display,「./assets/fonts/tngan",20,SWT.NONE); '要獲取字體,現在應該如何使用setTypeface方法? – BIU 2012-02-06 19:31:10

+1

我不是爲android寫的,如果這有所作爲。我在Eclipse中工作,我沒有看到setTypeface方法作爲任何組件的選項。 – BIU 2012-02-06 19:33:14

+0

@BIU:看到我的回答。你只需要做'label.setFont(elvishFont);' – styfle 2012-02-06 19:39:11

1

從Javadoc文檔Font

需要特定的字體可以捆綁他們, 使用 createFont 方法實例化他們的應用程序。

所以,你可以這樣做:

InputStream is = Main.class.getResourceAsStream('myFont.ttf'); 
Font font = Font.createFont(Font.TRUETYPE_FONT, is); 
JLabel label = new JLabel("My Label Text"); 
label.setFont(font); 

注意,「主要」是你的類的名稱。

+0

問題是標籤不能設置爲物理字體,或者至少如此說: 「Peered AWT組件,比如Label和TextField,可以只使用邏輯字體。「 – BIU 2012-02-06 19:50:32

+0

http://docs.oracle.com/javase/6/docs/api/java/awt/Font.html – BIU 2012-02-06 19:50:59

+1

@BIU JLabel!=標籤。話雖如此,我不知道這個限制是否也適用於Swing組件。 – Dev 2012-02-06 20:53:11

0
InputStream is = Main.class.getResourceAsStream('myFont.ttf'); 
Font font = Font.createFont(Font.TRUETYPE_FONT, is); 
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
ge.registerFont(font); 

但JDK要求> 1.5