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

发布于 2024-12-10 07:58:30 字数 450 浏览 0 评论 0 原文

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

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

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

再次感谢您的宝贵时间,我期待任何有好主意的回复!

Thanks for your time. My question is regarding the display of different fonts within the one JTextPane. My client wishes to view a word in two different languages within the one field. They've explicitly specified that they wish the different languages (namely Amharic, Arabic, Coptic and Hebrew) to be shown with different fonts. These are obviously non-standard fonts and I can't rely on the user having the required fonts installed on their OS.

From my research I've found that I can load a font file at runtime and set the JTextPane's font accordingly, which is fine if I just wanted to use one font, not two. I've also read about adding fonts to the OS' font directory or the JRE's font directory, outlined here.

I was hoping however, that there might be away to use the fonts without altering the user's OS. Am I out of luck?

Thanks again for your time and I look forward to any replies with bright ideas!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少跟Wǒ拽 2024-12-17 07:58:31

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

JTextPane 可以使用多种字体。

查看 Swing 教程中关于文本组件功能的部分,了解在文本窗格中使用文本属性的示例。

编辑:

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

阅读 createFont() 方法的 API 看起来您应该能够使用:

GraphicsEnvironment.registerFont(Font)

From my research I've found that I can load a font file at runtime and set the JTextPane's font accordingly, which is fine if I just wanted to use one font, not two.

A JTextPane can use multiple fonts.

Check out the section from the Swing tutorial on Text Component Features for an example of playing with the attributes of the text in the text pane.

Edit:

However to use multiple fonts, the only way I have worked out to set the font is by creating a MutableAttributeSet and setting the "FontFamily" attribute (a string) to the desired font name, and then assigning the Attribute set to the text using the StyledDocument.setCharacterAttributes

Reading the API for the createFont() method it looks like you should be able to use:

GraphicsEnvironment.registerFont(Font)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文