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

| 我用Java编写了一个程序,该程序使用一种特殊的字体,默认情况下,该字体在任何操作系统上都不存在。 在Java中是否可以将此特殊字体添加到操作系统?例如,在Windows中,将此字体复制到特殊的Fonts文件夹。 如果可能,怎么办?     
已邀请:
如果您在程序包中包含字体文件(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
}
我可能会将其包装在某种资源加载器中,尽管这样每次使用时都不会从包中重新加载文件。 与您的原始问题更紧密相关的答案是在应用程序的安装过程中安装字体。该过程将取决于您选择的安装方法。如果它不是桌面应用程序,则必须查看提供的链接。     
这是我的方法!
//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);
    
在Java教程中,您需要创建一个新字体并将其注册到图形环境中:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(\"A.ttf\")));
完成此步骤后,可以在对
getAvailableFontFamilyNames()
的调用中使用该字体,并且可以在字体构造函数中使用该字体。     
如果要使用该字体与graphics2d或类似图形一起绘制,则可以这样做:
InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream(\"roboto-bold.ttf\")
Font font = Font.createFont(Font.TRUETYPE_FONT, stream).deriveFont(48f)
    

要回复问题请先登录注册