在运行时加载自定义字体以与JTextPane一起使用

时间:2011-10-17 23:11:13

标签: java swing fonts internationalization jtextpane

感谢您的时间。我的问题是关于在一个JTextPane中显示不同的字体。我的客户希望在一个字段中查看两种不同语言的单词。他们明确指出他们希望用不同的字体显示不同的语言(即阿姆哈拉语,阿拉伯语,科普特语和希伯来语)。这些显然是非标准字体,我不能依赖于在其操作系统上安装了所需字体的用户。

从我的研究中我发现我可以在运行时加载字体文件并相应地设置JTextPane的字体,如果我只想使用一种字体而不是两种字体,这很好。我还阅读了有关将字体添加到操作系统的字体目录或JRE的字体目录的问题,概述为here

但我希望,在不改变用户操作系统的情况下可能会使用这些字体。我运气不好吗?

再次感谢您的时间,我期待任何有明智想法的回复!

1 个答案:

答案 0 :(得分:4)

  

根据我的研究,我发现我可以在运行时加载字体文件并相应地设置JTextPane的字体,如果我只想使用一种字体而不是两种字体,这很好。

JTextPane可以使用多种字体。

查看Text Component Features上Swing教程中的部分,了解在文本窗格中播放文本属性的示例。

编辑:

  

但是要使用多种字体,我设置字体的唯一方法是创建一个MutableAttributeSet并将“FontFamily”属性(字符串)设置为所需的字体名称,然后将属性集分配给使用StyledDocument.setCharacterAttributes

的文本

读取createFont()方法的API,看起来你应该可以使用:

GraphicsEnvironment.registerFont(Font)