感谢您的时间。我的问题是关于在一个JTextPane中显示不同的字体。我的客户希望在一个字段中查看两种不同语言的单词。他们明确指出他们希望用不同的字体显示不同的语言(即阿姆哈拉语,阿拉伯语,科普特语和希伯来语)。这些显然是非标准字体,我不能依赖于在其操作系统上安装了所需字体的用户。
从我的研究中我发现我可以在运行时加载字体文件并相应地设置JTextPane的字体,如果我只想使用一种字体而不是两种字体,这很好。我还阅读了有关将字体添加到操作系统的字体目录或JRE的字体目录的问题,概述为here。
但我希望,在不改变用户操作系统的情况下可能会使用这些字体。我运气不好吗?
再次感谢您的时间,我期待任何有明智想法的回复!
答案 0 :(得分:4)
根据我的研究,我发现我可以在运行时加载字体文件并相应地设置JTextPane的字体,如果我只想使用一种字体而不是两种字体,这很好。
JTextPane可以使用多种字体。
查看Text Component Features上Swing教程中的部分,了解在文本窗格中播放文本属性的示例。
编辑:
但是要使用多种字体,我设置字体的唯一方法是创建一个MutableAttributeSet并将“FontFamily”属性(字符串)设置为所需的字体名称,然后将属性集分配给使用StyledDocument.setCharacterAttributes
的文本
读取createFont()方法的API,看起来你应该可以使用:
GraphicsEnvironment.registerFont(Font)