【发布时间】:2013-05-22 11:22:02
【问题描述】:
我有一个带有 JLabel、JTextField 和其他 Java Swing 组件的小程序。另一方面,我有 .ttf 文件的 unicode 字体“AR”、“AR-ExtB”(扩展 B 区域)和“AR-Plus”(补充私人使用区域-A)。我希望小程序在每个 GUI 组件上使用三个 .ttf 文件,具体取决于用户输入的代码点。
1) 我知道这些组件无法使用多种字体。因此,将字体设置为组件的显式方法不是一种选择。
2) 嗯,有一种方法可以通过修改 $JAVA_HOME/lib 目录中的 fontconfig.properties 文件来实现,例如,“Dialog”(逻辑)字体已将三个 .ttf 文件映射为一个逻辑字体,但问题是所有其他 java 应用程序也会有这些字体,这不是我们想要的场景。
3) “Fallback fonts”,当没有其他字体可以在屏幕上显示字形时使用。这也不是一个解决方案,因为它只会显示 JAVA 默认字体未覆盖的字符。
问题是:
有谁知道如何在每个 GUI Swing 组件中使用这些 .ttf 文件作为字体,但仅限于 Applet 中,而不是全局用于在 JVM 上运行的所有应用程序?
【问题讨论】:
-
关于第 2 点 - 您是否有任何链接可以支持这就是 java 逻辑字体的工作方式?我的理解是,“逻辑”字体的 Java 概念只是意味着 JDK 会保证,如果您使用像“Dialog”这样的逻辑字体名称,则可以确保肯定会加载某些物理字体(从而避免了担心在任何给定平台上加载什么字体)。
-
哎呀,没关系 - 我现在在字体配置文档中看到它应该如何工作(我认为 fontconfig.properties 的东西是用于 HtmlView)。
标签: java swing unicode fonts truetype