在java小程序中绘制异国情调的字体

时间:2012-01-01 06:27:24

标签: java graphics fonts applet

我想在java applet中绘制包含在外来字体中的符号,例如Wingdings,Webdings(它们被称为dingbats:http://en.wikipedia.org/wiki/Dingbat)。当使用Graphics.drawString()时,我最终得到了绘制字符串中每个字符的典型“方形符号”。我通过谷歌搜索找不到任何答案,我想这不是常见的事情。

过去我用C#WPF做过,用SVG和HTML做不到。在java中可以吗?

编辑:解决了。有一个微妙的。即使你想要这种字体的符号链接到字符'a',实际上有必要将"\uF061"传递给g.drawString()而不是{ {1}}。否则你最终得到方形符号。

2 个答案:

答案 0 :(得分:3)

解决。即使你想要这种字体的符号链接到字符'a',实际上有必要将“\ uF061”传递给g.drawString()而不是“a”。否则你最终得到方形符号。

答案 1 :(得分:1)

Font添加到小程序的运行时类路径上的Jar(假设您有权分发它)。 I.E.将Jar的引用添加到archive元素的applet属性。通过(类似)访问它:

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

然后查看Font方法的Font dingbatFont = Font.createFont(Font.PLAIN,dingbatURL.openStream()); 方法。

Font

此后应该可以使用Graphics实例中的{{1}}。