为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Java中使用自定义字体?

如何在Java中使用自定义字体?

白猪掌柜的 2019-09-02 17:12:57
我用Java编写了一个程序,它使用一种特殊的字体,默认情况下在任何操作系统上都不存在。在Java中是否可以将这种特殊字体添加到操作系统中?例如,在Windows中,将此字体复制到特殊的Fonts文件夹。如果有可能,怎么样?
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

如果在包中包含字体文件(otf,ttf等),则可以通过此处描述的方法在应用程序中使用该字体:


Oracle Java SE 6:java.awt.Font


Oracle 提供了一个教程,显示了这个示例:


try {

     GraphicsEnvironment ge = 

         GraphicsEnvironment.getLocalGraphicsEnvironment();

     ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));

} catch (IOException|FontFormatException e) {

     //Handle exception

}

我可能会在某种资源加载器中将其包装起来,但是每次要使用它时都不会从包中重新加载文件。


与原始问题更密切相关的答案是将字体安装为应用程序安装过程的一部分。该过程取决于您选择的安装方法。如果它不是桌面应用程序,您将不得不查看提供的链接。




查看完整回答
反对 回复 2019-09-02
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我是这样做的!


//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);


查看完整回答
反对 回复 2019-09-02
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

在Java教程中,您需要创建一个新字体并在图形环境中注册它:


GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));

完成此步骤后,字体在调用时可用getAvailableFontFamilyNames(),并可在字体构造函数中使用。


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 1666 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信