繁体   English   中英

Java Applet GUI组件中的多种unicode字体

[英]Multiple unicode fonts in Java Applet GUI Components

我有一个带有JLabel,JTextField和其他Java Swing组件的applet。 另一方面,我有.ttf文件的Unicode字体“ AR”,“ AR-ExtB”(扩展的B区域)和“ AR-Plus”(补充专用区域-A)。 我希望该applet在每个GUI组件上使用三个.ttf文件,具体取决于用户输入的代码点。

1)我知道这些组件无法使用多种字体。 因此,将字体设置为组件的显式方法不是一种选择。

2)嗯,有一种方法可以通过修改$ JAVA_HOME / lib目录中的fontconfig.properties文件来实现,例如,“ Dialog”(逻辑)字体已将三个.ttf文件映射为一种逻辑字体,但是问题在于所有其他Java应用程序也将具有这些字体,而这并不是想要的情况。

3)“后退字体”,当没有其他字体可以在屏幕上显示字形时使用。 这也不是解决方案,因为它将仅显示JAVA默认字体未涵盖的字符。

问题是:

有谁知道如何在每个GUI Swing组件中将这些.​​ttf文件用作字体,但仅在Applet内使用,而不是在JVM上运行的所有应用程序全局使用?

要将TTF文件用作字体,您需要加载它并创建一个按这样设置的Font对象。

    try {
     GraphicsEnvironment ge = 
         GraphicsEnvironment.getLocalGraphicsEnvironment();
     ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
} catch (IOException|FontFormatException e) {
     //Handle exception
}

之后,可以使用字体对象。

要使用逻辑字体,请检查Oracle文档

-苏曼

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM