2012-01-01 27 views
1

我想繪製包含在Java小程序中的異形字體(如Wingdings,Webdings(它們被稱爲dingbats:http://en.wikipedia.org/wiki/Dingbat))中的符號。當使用Graphics.drawString()時,我最終得到了繪製字符串中每個字符的典型「方形符號」。我無法通過Google搜索找到任何答案,我想這不是什麼常見的事情。在Java小應用程序中繪製奇特的字體

在過去,我已經用C#WPF來完成它,但未能通過SVG和HTML來完成。在java中可能嗎?

編輯:解決。有一個微妙的。儘管您希望以這種字體顯示的符號鏈接到字符'a',但事實上有必要將"\uF061"傳遞給g.drawString()而不是"a"。否則,你最終會得到方形符號。

回答

3

已解決。即使你想用這樣的字體符號鏈接到字符'a',事實上有必要將「\ uF061」傳遞給g.drawString()而不是「a」。否則,你最終會得到方形符號。

1

Font添加到小程序的運行時類路徑上的Jar(假設您有權分發它)。 I.E.將對Jar的引用添加到applet元素的archive屬性。通過(像)訪問:

URL dingbatURL = this.getClass().getResource("/fonts/dingbat.ttf"); 

隨即看向Font方法爲createFont(int,InputStream)方法。

Font dingbatFont = Font.createFont(Font.PLAIN,dingbatURL.openStream()); 

此後應該是可能在Graphics實例以使用Font

+0

實際上它不是一個包裝問題,因爲在將java小程序轉換爲JFrame時遇到同樣的問題。我應該提到這一點,對不起。感謝您的回答,因爲它讓我更深入地看待解決方案。 – fury 2012-01-01 07:33:24

+0

+1 Andrew新年快樂 – mKorbel 2012-01-01 07:52:05

+0

@mKorbel同上。 :) – 2012-01-01 09:18:32