我用Java编写了一个程序,它使用了一种默认情况下在任何操作系统上都不存在的特殊字体。
在Java中可以将这种特殊的字体添加到操作系统中吗?例如,在Windows中,将此字体复制到特殊字体文件夹。
如果可能,如何实现?
发布于 2011-04-13 16:20:07
如果包含字体文件(otf、ttf等)在您的包中,您可以通过如下所述的方法在应用程序中使用字体:
Oracle Java SE 6: java.awt.Font
下面是一个来自Oracle的tutorial available,显示了这个示例:
try {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
} catch (IOException|FontFormatException e) {
//Handle exception
}
我可能会将其封装在某种资源加载器中,这样就不会在您每次想要使用它时都从包中重新加载它。
与您的原始问题更密切相关的答案是,将字体作为应用程序安装过程的一部分进行安装。该过程将取决于您选择的安装方法。如果它不是桌面应用程序,你必须查看提供的链接。
发布于 2013-07-07 18:25:57
这就是我是如何做到的!
//create the font
try {
//create the font to use. Specify the size!
Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("Fonts\\custom_font.ttf")).deriveFont(12f);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
//register the font
ge.registerFont(customFont);
} catch (IOException e) {
e.printStackTrace();
} catch(FontFormatException e) {
e.printStackTrace();
}
//use the font
yourSwingComponent.setFont(customFont);
发布于 2011-04-13 16:22:40
在Java tutorial中,您需要创建一个新字体并将其注册到图形环境中:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
完成此步骤后,可以在对getAvailableFontFamilyNames()
的调用中使用该字体,并且可以在字体构造函数中使用该字体。
https://stackoverflow.com/questions/5652344
复制